Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit dem ClickEvent beim PopupMenu (https://www.delphipraxis.net/26297-problem-mit-dem-clickevent-beim-popupmenu.html)

k0aru 21. Jul 2004 16:13


Problem mit dem ClickEvent beim PopupMenu
 
Also Leute... hi erstmal

Ich habe folgendes Problem:

Ich muss bei einem Programm eine Datenbank auslesen, in die der User vorher daten für eine Indy IRC Verbindung eingegeben hat. Diese werden folgendermaßen in ein PopupMenu eingetragen, was auch 100%ig klappt:



Delphi-Quellcode:
procedure DBDump;
var i,j,k:integer;
    m:TMenuItem;
begin
  j:=0;
  with Options.Table do
    begin
      First;
      for i:=1 to RecordCount do
        begin
          with Main.DBSwitch do
            begin
              m:=TMenuItem.Create(nil);
              Items.Add(m);
              Items[Items.Count-1].Caption:=Options.lbled_ident.Text;
            end;
          Inc(j);
          Next;
        end;
    end;
end;
Hier ein Screen:

http://beast.esenscity.de/publicatio...her/idle09.jpg

So und jetzt das eigentliche Problem:

der User soll in dem PopupMenu auf den jeweiligen Item clicken können. Dann wird die Verbindung getrennt und mit neuen Daten wieder hergestellt.
Aber wie kann ich dem MenuItem der zur Laufzeit generiert wurde ein OnClick Event hinzufügen der dies ermöglicht?

Würd mich auf schnelle Antwort freuen!

mfg k0aru

k0aru 21. Jul 2004 16:34

Re: Problem mit dem ClickEvent beim PopupMenu
 
braucht nicht mehr zu antworten! habs hinbekommen

Delphi-Quellcode:
  private
    procedure Changer(Sender: TObject);

{ ... }

procedure TMain.Changer(Sender: TObject);
begin
  ShowMessage('Bla');
end;

procedure DBDump;
var i,j,k:integer;
    m:TMenuItem;
begin
  j:=0;
  with Options.Table do
    begin
      First;
      for i:=1 to RecordCount do
        begin
          with Main.DBSwitch do
            begin
              m:=TMenuItem.Create(nil);
              Items.Add(m);
              m.OnClick:=Main.Changer; // Hier wird das Event hinzugefügt
              Items[Items.Count-1].Caption:=Options.lbled_ident.Text;
            end;
          Inc(j);
          Next;
        end;
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz