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 eine Arte Drehknopf (https://www.delphipraxis.net/40435-eine-arte-drehknopf.html)

Takeshi 15. Feb 2005 20:26


eine Arte Drehknopf
 
Hi.
Ich würde gerne eine Art Drehknopf programmieren, mit welcher der Benutzer einen Winkel einstellen kann.
Ich habe mir hierzu ein TPaintBox genommen und darein zeichne ich einen Kreis. Ich finde nur leider kein geeignetes Ereignis, welches mir die Koordinaten des Mauszeigers abfragt auch wenn ich diesen schon von dem PaintBox weggezogen habe. Also ich habe das mit OnDragOver versucht:
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Brush.Color:=clWhite;
PaintBox1.Canvas.Pen.Color:=clBlack;
PaintBox1.Canvas.Ellipse(0,0,PaintBox1.Width,PaintBox1.Width);
end;

procedure TForm1.PaintBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
Edit1.Text:=IntToStr(X);
Edit2.Text:=IntToStr(Y);
PaintBox1.Canvas.Brush.Color:=clRed;
PaintBox1.Canvas.Pen.Color:=clBlack;
PaintBox1.Canvas.Ellipse(0,0,PaintBox1.Width,PaintBox1.Width);
end;

procedure TForm1.PaintBox1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
PaintBox1.Canvas.Brush.Color:=clWhite;
PaintBox1.Canvas.Pen.Color:=clBlack;
PaintBox1.Canvas.Ellipse(0,0,PaintBox1.Width,PaintBox1.Width);
end;
Aber das Ereignis findet ja nicht mehr statt sobald man nicht mehr innerhalb des Objekts draggt, ansonsten ist das schon so wie ich es gerne hätte.
Hoffe jemand kann mir helfen.

Gruß, Christoph

Binärbaum 15. Feb 2005 21:02

Re: eine Arte Drehknopf
 
Soll es denn unbedingt ein Drehknopf sein?
Ein einfacher Scrollbar würde doch auch reichen, um den Winkel einzustellen, auch wenn es dann optisch nicht so schön ist, wie ein Drehknopf.

MfG
Binärbaum

sniper_w 15. Feb 2005 21:10

Re: eine Arte Drehknopf
 
Zitat:

eine Art Drehknopf
Also ohne DragadnDrop Event könnte ich dir vielleicht helfen, sonst ist es nicht möglich auf die Art und Weise weiter zu kommen.

xineohp 15. Feb 2005 21:17

Re: eine Arte Drehknopf
 
moin,

bei den JEDIs gibt es eine solche Komponente ... sieht zwar nicht unbedingt gut aus, aber zumindest das Prinzip sollte erdir vermitteln können. Das ganze nennt sich tJvDialButton.

Takeshi 15. Feb 2005 22:39

Re: eine Arte Drehknopf
 
Naja es geht mir eigentlich ausschließlich darum sowas mal zu programmieren, ging mir schon öfters durch den Kopf.
Ich will es auch nicht unbedingt mit einem DragadnDrop Event machen, ich sagte nur damit habe ich es bisher versucht - ohne gewünschten Erfolg. Also wenn du ne Idee hast - sniper_w - gerne her damit.
Aber jetzt will ich mal versuchen mir die jedi Komponente anzusehen.

Thx bisher, Christoph

Takeshi 15. Feb 2005 22:52

Re: eine Arte Drehknopf
 
Also so wie ich das sehe verwendet TJvDialButton einen Timer um die Mausposition regelmäßig abzufragen. Die Idee hatte ich auch schon, gehts evtl auch irgendwie ohne Timer?

Quake 16. Feb 2005 08:25

Re: eine Arte Drehknopf
 
Ich habe es nicht probiert aber kommt man evtl. mit OnMouseMouve vom Formular weiter?

Takeshi 19. Feb 2005 23:59

Re: eine Arte Drehknopf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmnee MouseMove ist ja auch problematisch..

Also ich habe jetzt mal eine Komponente programmiert (meine erste).
Mit nem Timer funktioniert das recht zufriedenstellend.

Gruß und Danke nochmal, Christoph


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 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