Pues la verdad es que como llevo un poco con delphi llevo un par de días atascado con esto.




Mirar el problema viene cuando intento que me diga el parent de un componente que esta sobre otro componente.
Al clicar sobre un componente normal me dice su parent en una linea de una memo. Todo va bien si en el componente su parent es el form. Pero no he encontrado la forma recursiva, de si por ejemplo hay un panel2 sobre un panel 1, clikando sobre ese panel2 me diga que su parent es el panel1, y que es panel1 pertenece al form.
A ver si me podéis echar una mano. Gracias por vuestro tiempo de antemano.

Os Adjunto código.
delphi
procedure Tform1.FormCreate(Sender: TObject); begin Application.OnMessage := AnalizaMensajes; end; procedure Tform1.AnalizaMensajes(var Msg: TMSg; Var Handled:Boolean); var //Target: TControl; Point: TPoint; ctrl : TControl; x,y:integer; begin if Msg.message = WM_LBUTTONDOWN then begin Point := Msg.pt; x := ScreenToClient(Point).X; y := ScreenToClient(Point).Y; Memo1.Lines.Add(intToStr(x)+'-'+intToStr(y)); ctrl := ControlAtPos(ScreenToClient(Point), true, true); if (ctrl <> nil) then memo1.lines.add(ctrl.Parent.name); //Aqui es donde me he quedado atascado end else inherited; end;