Thema: Delphi Auslöser?

Einzelnen Beitrag anzeigen

Thorben77

Registriert seit: 22. Okt 2004
359 Beiträge
 
#4

Re: Auslöser?

  Alt 6. Mär 2006, 19:59
Zitat von arbu man:
sender.name da ist der name des buttons drin
Nope, "Sender" ist nur ein "normales" Objekt und das hat keine Eigenschaft "Name". Die Eigenschaft gibt es erst ab TComponent. Also entweder 'ne Typumwandlung zum TButton oder auch nur TComponent:
Delphi-Quellcode:
procedure TFormXYZ.ButtonXYZClick(Sender: TObject);
begin
  // nicht empfehlenswert, mit "harter" Typumwandlung; da kann sonstwas passieren:
  ShowMessage(TButton(Sender).Name);
  ShowMessage(TComponent(Sender).Name);

  // die etwas "sicherere" Variante; wenn der Sender mal kein Button bzw. keine Komponente ist, gibt's 'n EInvalidCast-Fehler
  ShowMessage((Sender as TButton).Name);
  ShowMessage((Sender as TComponent).Name);

  // mit "dynamischer Typüberprüfung"; wenn der Sender nicht den richtigen Typ hat, passiert nix:
  if Sender is TButton then
    ShowMessage((Sender as TButton).Name);
  if Sender is TComponent then
    ShowMessage((Sender as TComponent).Name);

  // oder auch noch:
  if Sender is TButton then // oder TComponent
    ShowMessage(TButton(Sender).Name);
end;
Das man da soviel zu schreiben kann .

MfG
  Mit Zitat antworten Zitat