![]() |
CategoryButtons und onClick
Hi alle,
ich habe hier gerade ein Problem mit den Buttons aus einer TCategoryButtons. Wenn ich da dem onClick-Event eine Prozedur zuordne wird diese auch schön aufgerufen, allerdings ist Sender nie definiert ... damit kann ich das ganze natürlich nicht nutzen :(
Delphi-Quellcode:
Wäre für jeden Hinweis dankbar =)
procedure TForm1.AddSite(CatName: string; SiteName: string; Address: string);
var button: TButtonItem; begin with cats do begin cat := Categories.Items[Categories.IndexOf(CatName)]; button := cat.Items.Add; button.Caption := SiteName; button.Hint := Address; button.OnClick := NavClick; end; end; procedure TForm1.NavClick(Sender: TObject); var button: TButtonItem; begin button := TButtonItem(Sender); // <--- Sender ist nicht definiert (leere Klammer im debugger) web.Navigate(button.Hint); // <--- gibt dann natürlich einen Fehler repeat Application.ProcessMessages; Sleep(50); until (web.ReadyState = READYSTATE_COMPLETE) or (not web.Busy); end; Gruß, Chris |
Re: CategoryButtons und onClick
:warn:
Du musst dem Debugger sagen, als was er es betrachten soll, denke ich... wenn du den Sender in die Liste der beobachteten Vriablen setzt, dann ein @Sender draus machst und einen breakpoint setzt, wirst du sehen, dass er höcvhstwahrlscinlcih durchaus wohldefiniert bzw zugewiesen ist. Der Sender ist die auslösende Kompoenente, also TCategoryButons. Das geklickte item kriegst du von (Sender as TCategoryButtons).SelectedItem. |
Re: CategoryButtons und onClick
Stimmt, danke :-D
Dachte irgendwie in Erinnerung zu haben, dass er im Debugger bei Sender immer einen Pointer anzeigt ... Aber scheint wohl wirklich immer ne leere Klammer zu sein :cry: Gruß, Chris |
Re: CategoryButtons und onClick
Schön dass es klappt, ich benutze den übrigens auch gerade in einem projekt. Bin also an allem interessiert, was damit zusammenhängt.
|
Re: CategoryButtons und onClick
Is bei mir absolut nix besondres ... War ein 2-3 Stunden Projekt ;)
Werden lediglich "dynamisch" paar Kategorien und Buttons angelegt und im Hint eine Internetadresse hinterlegt. Beim klicken wird ein TabSheet geöffnet und dadrauf im TWebBrowser die Adresse ... Nicht wirklich kompliziert oder großartig interessant ;) Gruß, Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz