Si puedes asociar tus propios procedimientos a Eventos de Componentes generados en Tiempo de Ejecucion y en Tiempo de dise;o tambien.
Tiene que ser un procedimiento de tipo TNotifyEvent, es decir con el parametro Sender.
Aqui te pongo un ejemplo.
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
Image: TImage;
procedure MyClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Image := TImage.Create(Form1); //puede ser Self, nil
Image.Parent := Form1;
{.... lo que haga falta}
Image.OnClick := myClick;
end;
procedure TForm1.MyClick(Sender: TObject);
begin
ShowMessage('presionaste la imagen');
end;
Tienes que definir un procedimiento de tipo TEvent:
procedure Nombre(Sender:TObject);
Y luego asignarlo al Evento onClick de la imagen.
Si quieres acceder a las propiedades de la imagen desde el evento on Click, poruqe tienes varias Imagenes, y no sabes en la cual se hizo el Click, usa el parametro Sender con Type Casing>
procedure TForm1.MyClick(Sender: TObject);
begin
if Sender is TImage then
begin
TImage(Sender).Picture.Canvas.Bitmap.SaveToFile('test.bmp'); //guarda la imagen en la que se hizo click
ShowMessage(InttoStr(TImage(Sender).Width)); //muestra el acho
end;
end;
Usando el Sender como si fuera TImage, pudes asignar el mismo procedimiento a Distintas Imagenes..
Image1.onClick := myClick;
Image2.onClick := myClick;
ImageN.ohclick := MyClick;
Cualquier otra duda que surga, no dudes en avisar
Saludos