Thema: Sender???

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#30

Re: Sender???

  Alt 29. Sep 2003, 13:57
Zitat von Alex_ITA01:
achso es sollten also die gleichen proceduren für mehrer buttons sein? klar macht ja auch mehr sinn
Nein!

hihi.....

Es macht nur Sinn wenn bei allen das gleiche ausgeführt werden soll.

Besser ist das zu erklären an einem Label.

Angenommen Du hast auf deiner Form Labels in denen eine WEB-Adresse steht.

Delphi-Quellcode:
Label1.Caption := 'http:/www.delphipraxis.net';
Label2.Caption := 'http:/www.sharkys-home.de';
Label3.Caption := 'http:/www.borland.com';
Jetzt möchtest Du bei einem Click auf ein Label das die entsprechende Seite im Browser geöffnet wird.

Du könntest jetzt entweder für jedes Label ein OnClick schreiben:

Delphi-Quellcode:
procedure TForm1.Label1Click(Sender: TObject);
begin
 shellexecute(handle, 'open', PChar(Label1.Caption), nil, nil, sw_show);
end;

procedure TForm1.Label2Click(Sender: TObject);
begin
 shellexecute(handle, 'open', PChar(Label3.Caption), nil, nil, sw_show);
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
 shellexecute(handle, 'open', PChar(Label3.Caption), nil, nil, sw_show);
end;
Oder Du verwendest für alle drei Labels das gleiche OnClick:

Delphi-Quellcode:
procedure TForm1.Alle_LabelClick(Sender: TObject);
begin
 shellexecute(handle, 'open', PChar((Sender As TLabel).Caption), nil, nil, sw_show);
end;
Wie Du siehst spart man sich so einiges an Code und kann Fehler vermeiden.

Bei einem Button macht das natürlich nur Sinn wenn bei allen Buttons die Procedure aufgerufen wird.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat