Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#13

Re: Ereignis-Name zur Laufzeit zuweisen

  Alt 6. Mär 2007, 10:47
Hallo,

Bei meinen Vorschlag ist es nicht erforderlich (siehe Beitrag #1) im PanelEnter/Mouseenter die entsprechenden Komponentennamen zu speichern und die Labels dann per FindComponent(AltKompName) jedesmal wieder neu zu suchen.
Warum erst das ActiveControl in PanelEnter merken, wenn man es direkt in FormKeyDown ermitteln kann?

Wobei es schon umständlich ist, das über den Namen zu realisieren, da würde ein Zeiger auf das jeweilige Label ausreichen.

Der gesamte benötigte Code, auf das wesentliche reduziert. Bei den Panels die berücksichtigt werden sollen wird die Tag-Eigenschaft auf 1 gesetzt:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key = 13 then
  if assigned(ActiveControl) then
   with ActiveControl do
    if ClassType = TPanel then
     if Tag = 1 then
      TLabel(Controls[0]).OnClick(Controls[0]);
end;
Also kein LabelEnter-, LabelLeave-Eventhandler keine zusätzliche Variable, alles in einer Prozedur.
Finde nicht, das es umständlich ist.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat