Autor Beitrag
stigge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: 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? :gruebel:
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 20:44 
Keiner eine Idee?
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Do 22.03.07 20:47 
OnMouseUp vlt. mal ausporbieren?
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 21:10 
On Mouseup gibt's bei ttrackbar nicht :(
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

ausblenden 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
  // mach was sinnvolles
end;
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 21:17 
user profile iconRalf 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.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
type
  HackedTrackbar = class(TTrackBar);//Wenn ich das hier nach  TForm1 = class(TForm) einfüge, bekomme ich lauter Fehler!

procedure TForm.FormCreate(Sender: TObject);
begin
  HackedTrackbar(TrackBar).OnMouseUp := OnMouseUp;
end;

procedure TForm.OnMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // mach was sinnvolles
end;
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 21:21 
user profile iconstigge hat folgendes geschrieben:
user profile iconRalf 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.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
type
  HackedTrackbar = class(TTrackBar);//Wenn ich das hier nach  TForm1 = class(TForm) einfüge, bekomme ich lauter Fehler!

procedure TForm.FormCreate(Sender: TObject);
begin
  HackedTrackbar(TrackBar).OnMouseUp := OnMouseUp;
end;

procedure TForm.OnMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // mach was sinnvolles
end;

Hat sich geklärt^^ Aber ich habe jetzt noch ein anderes Problem:
[Fehler] Unit1.pas(1228): E2003 Undefinierter Bezeichner: 'OnMouseUp'
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 21:29 
user profile iconRalf 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^^
ausblenden Quelltext
1:
[Fehler] Unit1.pas(1228): E2003 Undefinierter Bezeichner: 'OnMouseUp'					
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 22.03.07 21:29 
Hier mal in vollständig

ausblenden volle Höhe 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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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
  // mach was sinnvolles
end;

end.
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 21:33 
user profile iconRalf Jansen hat folgendes geschrieben:
Hier mal in vollständig

ausblenden volle Höhe 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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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
  // mach was sinnvolles
end;

end.

Genauso hab ich's. Trotzdem noch gleicher Fehler wie oben.
Saubäär
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 376



BeitragVerfasst: Do 22.03.07 21:33 
Moin,

wie wärs so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 if GetAsyncKeyState(VK_LBUTTON) = 0 then begin
  // do what you want
  end;
end;

?

Gruß
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 21:53 
user profile iconSaubäär hat folgendes geschrieben:
Moin,

wie wärs so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 if GetAsyncKeyState(VK_LBUTTON) = 0 then begin
  // do what you want
  end;
end;

?

Gruß

Also 0 wenn die Taste nicht gedrückt ist und 1 wenn gedrückt?
Saubäär
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 376



BeitragVerfasst: Do 22.03.07 21:54 
user profile iconstigge 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 22.03.07 22:15 
user profile iconSaubäär hat folgendes geschrieben:
user profile iconstigge 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: