Man müßte nichtmal am Speichermanagement rumspielen
Delphi-Quellcode:
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
var Value: Real;
begin
Value := StrToFloatDef(Edit2.Text, 0);
case Button of
btNext: Value := Value + 0.1;
btPrev: Value := Value - 0.1;
end;
Edit2.Text := FloatToStrF(Value, ffNumber, 1, 1);
end;
PS:
* krallt sich das bei .Associate eingetragene Edit
* Ereignis kann für beliebig viele UpDown-Buttons genutzt werden, da keine externen Variablen verwendet werden
* der Wertebereich kann begrennzt werden > .Min und .Max des jeweiligen UpDowns ( x / 10 )
Delphi-Quellcode:
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
Assert(Sender is TUpDown);
If TUpDown(Sender).Tag = 0 Then Begin
TUpDown(Sender).Tag := Integer(TUpDown(Sender).Associate);
TUpDown(Sender).Associate := nil;
Assert(TObject(TUpDown(Sender).Tag) is TEdit);
End;
TEdit(TUpDown(Sender).Tag).Text := FloatToStrF(TUpDown(Sender).Position / 10, ffNumber, 1, 1);
end;
* wenn .Position bei Programmstart <> 0 ist, dann sollte dieses Ereignis in {Form}.Create einmal aufgerufen werden, damit der angezeigte Wert stimmt
z.B.:
UpDown1.OnClick(UpDown1, btNext);