Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Trackbar beim Loslassen Event?
stigge - Do 22.03.07 19:51
Titel: Trackbar beim Loslassen Event?
Ich möchte, das ein Ereignis eintritt wenn dieser "Cursor" der Trackbar wieder losgelassen wird.
Also das man die Trackbar wie man will verstellen kann, aber das Ereignis erst eintritt, wenn man wieder loslässt. Geht das? OnChange tritt zu früh ein, da es ja erst beim loslassen eintreten soll.
Jemand Ahnung? :gruebel:
stigge - Do 22.03.07 20:44
Keiner eine Idee?
Danniolo - Do 22.03.07 20:47
OnMouseUp vlt. mal ausporbieren?
stigge - Do 22.03.07 21:10
On Mouseup gibt's bei ttrackbar nicht :(
Ralf Jansen - Do 22.03.07 21:10
Hmmh, OnMouseUp ist bei der Trackbar nicht publiziert und MouseUp kommt natürlich auch wenn man einfach nur so unmotiviert auf dem Ding rum klickt. Aber wenn du es ausprobieren willst. Kannst dich ja in die Trackbar reinhacken und MouseUp im Code verdrahten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type HackedTrackbar = class(TTrackBar);
procedure TForm.FormCreate(Sender: TObject); begin HackedTrackbar(TrackBar).OnMouseUp := OnMouseUp; end;
procedure TForm.OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin end; |
stigge - Do 22.03.07 21:17
Ralf Jansen hat folgendes geschrieben: |
Hmmh, OnMouseUp ist bei der Trackbar nicht publiziert und MouseUp kommt natürlich auch wenn man einfach nur so unmotiviert auf dem Ding rum klickt. Aber wenn du es ausprobieren willst. Kannst dich ja in die Trackbar reinhacken und MouseUp im Code verdrahten.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type HackedTrackbar = class(TTrackBar); procedure TForm.FormCreate(Sender: TObject); begin HackedTrackbar(TrackBar).OnMouseUp := OnMouseUp; end;
procedure TForm.OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin end; | |
stigge - Do 22.03.07 21:21
stigge hat folgendes geschrieben: |
Ralf Jansen hat folgendes geschrieben: | Hmmh, OnMouseUp ist bei der Trackbar nicht publiziert und MouseUp kommt natürlich auch wenn man einfach nur so unmotiviert auf dem Ding rum klickt. Aber wenn du es ausprobieren willst. Kannst dich ja in die Trackbar reinhacken und MouseUp im Code verdrahten.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type HackedTrackbar = class(TTrackBar); procedure TForm.FormCreate(Sender: TObject); begin HackedTrackbar(TrackBar).OnMouseUp := OnMouseUp; end;
procedure TForm.OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin end; | |
|
Hat sich geklärt^^ Aber ich habe jetzt noch ein anderes Problem:
[Fehler] Unit1.pas(1228): E2003 Undefinierter Bezeichner: 'OnMouseUp'
Ralf Jansen - Do 22.03.07 21:22
Gehört einfach in den Implementation Teil zwischen deinen Funktionen. Ist ja einfach eine weitere Klassendefinition und gehört nicht zu deiner Form.
Wenn du ein anderes Problem meinst zeig deinen Code vielleicht seh ich das dann.
stigge - Do 22.03.07 21:29
Ralf Jansen hat folgendes geschrieben: |
Gehört einfach in den Implementation Teil zwischen deinen Funktionen. Ist ja einfach eine weitere Klassendefinition und gehört nicht zu deiner Form.
Wenn du ein anderes Problem meinst zeig deinen Code vielleicht seh ich das dann. |
Siehe oben^^
Quelltext
1:
| [Fehler] Unit1.pas(1228): E2003 Undefinierter Bezeichner: 'OnMouseUp' |
Ralf Jansen - Do 22.03.07 21:29
Hier mal in vollständig
Delphi-Quelltext
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: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;
type TForm1 = class(TForm) TrackBar1: TTrackBar; procedure FormCreate(Sender: TObject); procedure OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
type THackedTrackbar = class(TTrackBar);
procedure TForm1.FormCreate(Sender: TObject); begin THackedTrackbar(TrackBar1).OnMouseUp := OnMouseUp; end;
procedure TForm1.OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin end;
end. |
stigge - Do 22.03.07 21:33
Ralf Jansen hat folgendes geschrieben: |
Hier mal in vollständig
Delphi-Quelltext 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: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;
type TForm1 = class(TForm) TrackBar1: TTrackBar; procedure FormCreate(Sender: TObject); procedure OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
type THackedTrackbar = class(TTrackBar);
procedure TForm1.FormCreate(Sender: TObject); begin THackedTrackbar(TrackBar1).OnMouseUp := OnMouseUp; end;
procedure TForm1.OnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin end;
end. | |
Genauso hab ich's. Trotzdem noch gleicher Fehler wie oben.
Saubäär - Do 22.03.07 21:33
Moin,
wie wärs so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.TrackBar1Change(Sender: TObject); begin if GetAsyncKeyState(VK_LBUTTON) = 0 then begin end; end; |
?
Gruß
Ralf Jansen - Do 22.03.07 21:50
GetAsyncKeyState ... auch nicht dumm.
Hat denn Vorteil das der Code auch zieht wenn man die Trackbarposition per Keyboard ändert.
stigge - Do 22.03.07 21:53
Saubäär hat folgendes geschrieben: |
Moin,
wie wärs so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.TrackBar1Change(Sender: TObject); begin if GetAsyncKeyState(VK_LBUTTON) = 0 then begin end; end; |
?
Gruß |
Also 0 wenn die Taste nicht gedrückt ist und 1 wenn gedrückt?
Saubäär - Do 22.03.07 21:54
stigge hat folgendes geschrieben: |
Also 0 wenn die Taste nicht gedrückt ist und 1 wenn gedrückt? |
Ich glaub nicht. Probiers aus! :wink:
z.B. Werte in nem Memo ausgeben !?!
stigge - Do 22.03.07 22:15
Saubäär hat folgendes geschrieben: |
stigge hat folgendes geschrieben: |
Also 0 wenn die Taste nicht gedrückt ist und 1 wenn gedrückt? |
Ich glaub nicht. Probiers aus! :wink:
z.B. Werte in nem Memo ausgeben !?! |
Naja, auf jeden falls funktioniert's. Danke! :zwinker:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!