Einzelnen Beitrag anzeigen

Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TUpDown: wie lange gedrückt?

  Alt 16. Jan 2007, 13:45
Meine Lösung wäre:

auf der Form privat deklarieren:
Delphi-Quellcode:
  private
    fUpDownPressedAt: Cardinal;

Und dann die Ereignisse nutzen:
Delphi-Quellcode:
procedure TForm1.UpDown1Changing(Sender: TObject;
  var AllowChange: Boolean);
var
  fDelta : Cardinal;
begin
  fDelta := GetTickCount - fUpDownPressedAt;
  case fDelta of
       0..1000: UpDown1.Increment := 1;
    1001..2000: UpDown1.Increment := 2;
    2001..3000: UpDown1.Increment := 3;
    3001..4000: UpDown1.Increment := 4;
    4001..5000: UpDown1.Increment := 5;
    5001..9999: UpDown1.Increment := 6;
  end;
end;

procedure TForm1.UpDown1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  fUpDownPressedAt := GetTickCount;
end;

procedure TForm1.UpDown1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  UpDown1.Increment := 1;
end;
  Mit Zitat antworten Zitat