Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Popup geht erst beim zweiten mal?

  Alt 10. Okt 2003, 13:38
Moin mandumoal,

erst nachdem das MouseDown Ereignis komplett abgearbeitet wurde, wird die OnClick Routine ausgeführt.
Du kannst Dir das selber mal ansehen, wenn Du Dir mal an den entsprechenden Stellen mit Outputdebugstring, und einer entsprechenden Meldung, mal den Verlauf ansiehst. (Ansicht, Debugfenster, Ereignisprotokoll).

So geht's:
Im FormCreate wird den Tags der Menüpunkte die Farbe zugewiesen, und jedem Menüpunkt das gleiche OnClick Ereignis, in dem dann auch gleich die Farbe gesetzt wird (die sich ja jetzt im Tag befindet).

Delphi-Quellcode:
procedure TForm1.ColorPOPLINClick(Sender: TObject);
begin
  shape1.brush.color := TColor((Sender as TMenuItem).Tag);
end;

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ColorPOPLIN.Popup(Mouse.cursorpos.x,Mouse.cursorpos.y);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Rot1.Tag := integer(clRed);
  Blau1.Tag := integer(clBlue);
  Gruen1.Tag := integer(clGreen);
  Gelb1.Tag := integer(clYellow);
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat