AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Popup geht erst beim zweiten mal?

Ein Thema von mandumoal · begonnen am 10. Okt 2003 · letzter Beitrag vom 10. Okt 2003
Antwort Antwort
mandumoal

Registriert seit: 20. Feb 2003
124 Beiträge
 
Delphi 5 Professional
 
#1

Popup geht erst beim zweiten mal?

  Alt 10. Okt 2003, 12:18
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:
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ColorPOPLIN.Popup(ax,ay);
shape1.brush.color:=colorLin1;
end;
Die Popup Einträge werden so ausgewertet:

Delphi-Quellcode:
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;
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...

Ich weiss einfach nicht was ich da falsch gemacht habe??
Freue mich auf eure Hilfe!

mfg mandumoal
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#2

Re: Popup geht erst beim zweiten mal?

  Alt 10. Okt 2003, 12:34


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;
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Popup geht erst beim zweiten mal?

  Alt 10. Okt 2003, 12: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
mandumoal

Registriert seit: 20. Feb 2003
124 Beiträge
 
Delphi 5 Professional
 
#4

Re: Popup geht erst beim zweiten mal?

  Alt 10. Okt 2003, 13:26
Vielen Dank für die Antworten!

Problem gelöst ;

mfg mandumoal
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 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