Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   mover un objeto aleatoriamente (https://www.clubdelphi.com/foros/showthread.php?t=57508)

kurono 18-06-2008 07:19:37

mover un objeto aleatoriamente
 
hola amigos del foro me gustaria saber como puedo mover un objeto x aleatoriamente en cualquier posicion del formulario con la funcion random supongamos q el objeto sea el componente shape1

Crandel 18-06-2008 08:14:08

Justamente lo estas diciendo, con la funcion random

shape1.Left := Random(form1.Width);

Neftali [Germán.Estévez] 18-06-2008 08:44:24

Si haces algo similar con el Top y además miras la ayuda de randomize para conseguir que realmente sea aleatorio ya lo tienes todo.
Lo colocas dentro del evento de un timer y con eso debería bastar.

kurono 18-06-2008 16:41:59

ok disculpen amigo el codigo funciona perfectamente solo que me gustaria que el objeto se moviera en varias posiciones indicada osea supongamos que tenga 4 componente de imagen1 cada una en una esquina del formulario como hacer que el objecto se mueva aleatoriamente entre los 4 imagen1 y disculpen por la molestia

Neftali [Germán.Estévez] 18-06-2008 17:20:28

¿Te puedes explicar mejor?

kurono 18-06-2008 17:27:49

ok me explico supongamos que tengo 4 label por ejemplo cada uno de los label esta en una esquina del formulario y en el centro tengo el componente shape1 lo que quiero hacer que el componente shape1 se mueva en la posicion de cada label pero aleatoriamente

kurono 19-06-2008 05:19:48

heyyy amigos quiero saber si me explico correctamente ya que nadie a respondido si hay alguna forma de hacer eso lo pido

Crandel 19-06-2008 05:57:50

Si, haz un Random de 1 a 4 y segun que obtengas lo mueves a cada una de las esquinas.

kurono 19-06-2008 05:58:07

heyyy amigos quiero saber si me explico correctamente ya que nadie a respondido si hay alguna forma de hacer eso lo pido

kurono 19-06-2008 06:00:14

amigo crandel me puedes dar un ejemplo

Neftali [Germán.Estévez] 19-06-2008 10:13:19

(1) Crea un formulario con los 4 labels con nombres label0, label1, label2 y label3, 1 share y un TTimer.
(2) El intervalo del timer, cada 2000 milisegundos, por ejemplo.
(3) En el evento del timer programa lo siguiente:

Código Delphi [-]
var
  i:Integer;
  lbl:TLabel;
begin
  i := Random(1000);
  i := i MOD 4;

  TComponent(lbl) := FindComponent('Label'+IntToStr(i));

  // encontrado?
  if Assigned(lbl) then begin
    Shape1.Left := lbl.Left;
    Shape1.Top := lbl.Top;
  end;

(4) Y en el show:
Código Delphi [-]
  RandSeed := GetTickCount;
  Randomize;

kurono 19-06-2008 18:21:50

ok amigo neftali lo probare luego te cuento

kurono 19-06-2008 18:52:35

amigo neftali el codigo me funciona perfectamente gracias


La franja horaria es GMT +2. Ahora son las 08:15:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi