La respuesta de
Roman es Correctísima (como siempre), quizás este ejemplo te aclare algo más:
El ejemplo que pongo a continuacion, es de un CheckListBox que tiene que informar a una ventana llamada FormDestino cuando se hace click en un elemento del CheckListBox.
Código Delphi
[-]
type TNotifyCheckClicks = procedure(FormClicked: Integer; const Value: integer) of object;
type Form_del_Checklistbox = class(Tform)
private
FInformarClicks: TNotifyCheckClicks;
public
property InformarClicks:TNotifyCheckClicks read FInformarClicks Write FinformarClicks default nil;
implementation
procedure Tform_del_Checklistbox.CheckListboxClicks(....)
begin
if Assigned(FInformarClicks) then
begin
FInformarClicks(Self.Parent.Tag,i);
Application.ProcessMessages;
end;
end;
Ahora solo queda recoger el evento.
Código Delphi
[-]
procedure FormDestino.FormDestinoCreate(...)
begin
Form_del_checklistbox.InformarClicks := SetHechoClick;
end;
procedure FormDestino.SetHechoClick(FormClicked: Integer; const chklbIndex: integer);
begin
end;
Eso de que el padre (FormDestino) reenvie el mensaje a sus hijos (controles dentro de FormDestino), no lo veo claro. Para cada componente que uses, tendrías que crearle el evento TNotifyCheckClicks, y es bastante trabajo. Creo que es mejor centralizar todo el trabajo de los hijos en el procedimiento SetHechoClick.
Saludos
Saludos