Frage : Popup- Menü onclick feuert nicht Ereignis ab

Ich habe ein Popup- Menü, das dynamisch die Untertitelen verursacht, die auf dem Wert in einem Rasterfeld (asg2) basieren, und es funktioniert, wie ich wünsche es… ausgenommen…. das OnClick Ereignis tut nicht fire.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.asg2MouseDown (Absender: TObject; Knopf: TMouseButton;
  Verschiebung: TShiftState; X, Y: Ganze Zahl);
  varts: Schnur;
      mi1, mi2: TMenuItem;
anfangen
  wenn Knopf = mbRight dann
    anfangen
      asg2.Row: = ASG2.MouseCoord (X, Y).Y;
      AdvPopupMenu1.Items.Clear;

      mi1: = TMenuItem.Create (AdvPopupMenu1);
      mi1.Caption: = 'Klingeln '+asg2.cells [0, asg2.row];
      mi1.OnClick: = Ping2Click;

      mi2: = TMenuItem.Create (AdvPopupMenu1);
      mi2.Caption: = 'Überprüfung '+asg2.cells [0, asg2.row];
      mi2.OnClick: = Check1Click;
      AdvPopupMenu1.Items.Add ([mi1, mi2]);

      wenn ((ASG2.MouseCoord (X, Y).X=0)) dann
          AdvPopupMenu1.PopupAtCursor;
      mi1.Destroy;
      mi2.Destroy;
    Ende;
Ende; 


Neither Ping2Click noch Check1Click abfeuert h, wann das jeweilige Menüeinzelteil selected.

Any Ideen ist?

Antwort : Popup- Menü onclick feuert nicht Ereignis ab

Gerade ein schneller Blick durch Ihren Code, warum verursachen Sie diese meniutems und zerstören sie dann im gleichen Verfahren?
Die Weise, die Sie sie scheint getan anders, korrekt zu sein -- Sie zuordnen den Namen des eventhandler dem Ereignis, als innen n
  mi2.OnClick: = Check1Click;  
Dann, wenn der Benutzer an mi2 klickt, erhält Check1Click benannt
Sie können den Absenderparameter dann verwenden, um zu sehen, welcher Knopf ihn benannte.

Jedoch nach Ihnen sagte mi2.OnClick: = Check1Click; in Ihrem Quellecode zerstören Sie ihn sofort, d.h. mi2.destroy;
Weitere Lösungen  
 
programming4us programming4us