Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Ereignis-Name zur Laufzeit zuweisen

  Alt 2. Mär 2007, 21:12
Hi,

die Frage hat hiermit was zu tun :

http://www.delphipraxis.net/internal...955d5395de32b4

Es geht um ein Panel und ein Label darauf. Nun kommt hinzu, dass bei Drücken von Enter etwas gemacht werden muss. Und zwar, sofern das Label oder das entsprechende Panel den Focus hat. Leider hat das Label kein KeyPress usw. und das Panel hat kein MouseEnter usw. Ich habe deshalb (vorläufig) den Weg gewählt, im PanelEnter/Mouseenter die entsprechhenden Komponentennamen zu speichern und das FormKeyDown auszuwerten :

Delphi-Quellcode:
procedure Tfrm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var c : TComponent;
begin
  if key = 13 then begin
    c := FindComponent(AltKompName);
    ShowMessage ('****** '+c.Name);
    Label2Click (Sender);
    //c.Name+'OnKeyDown';
  end;
end;

Delphi-Quellcode:
procedure Tfrm.Label2Click(Sender: TObject);
begin
showmessage ('Label2Click');
end;
Das Label2Click geht auch soweit (momentan eben nur showmessage), aber der ganaue Name ist zum Zeitpunkt des auslösens ja gar nicht bekannt. Das könnte auch Label12345Click heißen. ShowMessage ('****** '+c.Name); liefert den Namen des Controls. Wie baue ich daraus jetzt einen Prozedurnamen zusammen oder führe die Procedure aus ?
Gruß
Hansa
  Mit Zitat antworten Zitat