![]() |
Popup geht erst beim zweiten mal?
HI!
Mein Problem: Ich habe ein ganz normales Shape auf meiner Form und ein Popup-Menu welches vier Einträge hat (Rot,Blau,Grün,Gelb). Beim OnMouseDown Ereignis des Shape wird Folgendes aufgerufen:
Delphi-Quellcode:
Die Popup Einträge werden so ausgewertet:
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin ColorPOPLIN.Popup(ax,ay); shape1.brush.color:=colorLin1; end;
Delphi-Quellcode:
So, wenn ich jetzt draufklicke (im Betrieb) und eine Farbe auswähle passiert erst mal gar nichts, beim zweiten mal kommt die farbe die ich beim ersten mal gewählt habe egal welche ich beim zweiten mal gewählt habe und so weiter...
procedure TForm1.RotClick(Sender: TObject);
begin colorLin1:=clRed; end; procedure TForm1.BlauClick(Sender: TObject); begin colorLin1:=clBlue; end; procedure TForm1.GruenClick(Sender: TObject); begin colorLin1:=clgreen; end; procedure TForm1.GelbClick(Sender: TObject); begin colorLin1:=clyellow; end; Ich weiss einfach nicht was ich da falsch gemacht habe?? Freue mich auf eure Hilfe! mfg mandumoal |
Re: Popup geht erst beim zweiten mal?
:hi:
Du weist dem Shape erst die Farbe zu, wenn man klickt. Du müsstest sie zuweisen, wenn du sie änderst.
Delphi-Quellcode:
procedure TForm1.BlauClick(Sender: TObject);
begin * shape1.brush.color :=clBlue; end; |
Re: Popup geht erst beim zweiten mal?
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; |
Re: Popup geht erst beim zweiten mal?
Vielen Dank für die Antworten!
Problem gelöst :-D ; mfg mandumoal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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