Ver Mensaje Individual
  #2  
Antiguo 13-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez algo como esto te de alguna pista:

Código Delphi [-]
procedure TForm1.Shape1MouseDown(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 var
   i: integer;
 begin
   if Button = mbLeft then
   begin
     for i := 0 to ComponentCount-1 do
       if Components[i] is TShape then
         TShape(Components[i]).Pen.Width := 1;
     (Sender as TShape).Pen.Width := 2;
   end;
 end;
Se trata de que todos los "TShapes" compartan el evento MouseDown. Arriba se puede apreciar cómo estamos pendientes de que el usuario halla hecho clic con el botón izquierdo del ratón en un "TShape".

"Inizializamos" entonces todos los componentes "TShape" dándolos un ancho de lapiz igual a uno. A continuación, al "TShape" que disparó el evento que tratamos le damos un ancho de lapiz un tanto mayor.

De ese modo se puede observar a simple vista el "TShape seleccionado". Si juegas con la propiedad "Style" del lapiz ("Pen") de los "TShape" quizás puedas lograr distintos efectos, y no solamente el que se ha referido aquí.

Actualización: En el archivo que adjunto puedes ver lo dicho "funcionando" .
Archivos Adjuntos
Tipo de Archivo: zip shapes.zip (1,7 KB, 94 visitas)
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 13-07-2005 a las 22:38:53. Razón: (actualización)
Responder Con Cita