![]() |
procedure-übergabe
hallo
ich versuche einem popupmenü mit einer procedure ein item zuzuordnen. wahlweise soll man halt auch noch gleich eine onClick procedure übergeben können. hier mal der code:
Delphi-Quellcode:
und dann noch ne frage: wenn ich userlvpop.Items.Clear aufrufe werden die items dann richtig freigegeben?
procedure TForm1.ReadNaClick(Sender: TObject);
begin { ... } end; procedure TForm1.userlvMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure AddPopupItem(text: string; ocladdr: Pointer = nil); var a: TMenuItem; begin a := TMenuItem.Create(userlvpop); a.Caption := text; if ocladdr <> nil then a.OnClick := TNotifyEvent(ocladdr^); userlvpop.Items.Add(a); end; var user: TUser; begin if (userlv.Selected = nil) or (button <> mbRight) then exit; user := TUser(users.Items[indexbyname(userlv.Selected.Caption)]); AddPopupItem(user.ip); if user.status = stat_away then begin AddPopupItem('-'); AddPopupItem('"Abwesend"-Nachricht lesen',@ReadNaClick); // fehler: Varible erforderlich end; userlvpop.Popup(mouse.CursorPos.X,mouse.CursorPos.Y); userlvpop.Items.Clear; end; achja ;) was mache ich in dem code falsch? |
Re: procedure-übergabe
Delphi-Quellcode:
Müsste auch richtig freigegeben werden...
procedure AddPopupItem(text: string; OnClickProc: TNotifyEvent = nil);
{...} AddPopupItem('"Abwesend"-Nachricht lesen', ReadNaClick); |
Re: procedure-übergabe
ok danke.
also es bringt jetzt keine fehlermeldung mehr ;) wenn ich in der procedure AddPopupItem a.click aufrufe (nachdem ich das onclick-event auf die übergebene procedure zugewiesen habe) funktioniert auch alles. nur wenn ich dann später auf den eintrag im popupmenu klicke tut sich garnix... was soll das wieder? |
Re: procedure-übergabe
habs grad selber rausgefunden. der code läuft natürlich weiter wenn das popup schon offen is. dadurch wird das item wieder freigegeben und is dann nurnoch in der anzeige vorhanden...
|
Re: procedure-übergabe
Uah, das Clear sollte am Anfang des Events stehen und nicht nach dem Popup!
Ein Popup ist imho nicht Modal, d.h., die Items werden gelöscht, bevor du nen MenuItem angeklickt hast. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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-2025 by Thomas Breitkreuz