Ver Mensaje Individual
  #16  
Antiguo 02-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
En el ejemplo 31 cada una de las figuras se corresponde a un objeto creado en tiempo de ejecución e incluido en un TObjectList llamado Figuras. Pues bien si necesitamos saber las coordenadas de los objetos solo tenemos que recorrer la lista y para cada objeto revisar su propiedad BoundRect. Algo así:

Código Delphi [-]
var
  i: integer;
  Figura: TFigura;
begin
   for i:= 0 to Figuras.Count - 1 do
    begin
      Figura:= TFigura(Figuras[i]);
      with Figura.BoundsRect do
        Memo1.lines.add(Format('Left=%d,Top=%d,Right=%d,Bottom=%d',
          [Left,Top,Right,Bottom]));
    end;
end;

El código anterior es solo un ejemplo, se le pueden añadir un par de cosas. Por ejemplo si lo que quieres es el punto central puedes hacer algo como esto:
Código Delphi [-]
  x:= (Figura.BoundsRect.Left + Figura.BoundsRect.Right) div 2;
  y:= (Figura.BoundsRect.Top + Figura.BoundsRect.Bottom) div 2;

También puede ser que quieras diferenciar cada figura por separado, para eso añade a la clase TFigura un nombre, a la hora de crear una figura nueva tendrás que asignarle un nombre y luego dentro del bucle for solo tendrás que comprobar el nombre para saber cual es cada una.
Responder Con Cita