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;