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" .