| Autor |
Beitrag |
stigge
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 19:51
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? 
|
|
stigge 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 20:44
|
|
Danniolo
      
Beiträge: 693
|
Verfasst: Do 22.03.07 20:47
OnMouseUp vlt. mal ausporbieren?
|
|
stigge 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 21:10
On Mouseup gibt's bei ttrackbar nicht 
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: 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 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: 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 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 21:21
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: 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 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 21:29
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Do 22.03.07 21:29
Hier mal in vollständig
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 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 21:33
Ralf Jansen hat folgendes geschrieben: | Hier mal in vollständig
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
      
Beiträge: 376
|
Verfasst: 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
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: 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 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 21:53
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: 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!  z.B. Werte in nem Memo ausgeben !?!
|
|
stigge 
      
Beiträge: 426
WinXP
Delphi 2007
|
Verfasst: Do 22.03.07 22:15
|
|