![]() |
upDown-Button mit float-Werten
Hallo Leute,
ich bin noch ein Delphi-Anfänger und habe da mal eine Frage. Ich brauche für ein Edit-Feld ein UpDown-Button, da gibt es ja verschiedene unter Delphi. Jedoch habe ich keinen gefunden, mit dem man auch Komma-Zahlen eintragen kann und in 0.1-Schritten nach oben bzw. unten zählen kann. Am besten wäre auch noch, hinter die zahl eine Einheit eintragen zu können. Wie stelle ich das am besten an? |
Re: upDown-Button mit float-Werten
Herzlich willkommen in der Delphi-PRAXiS.
Wenn das Edit-Feld nicht direkt manipuliert werden muss, dann erreichst du dein Ziel über die Komponente TUpDown recht einfach:
Delphi-Quellcode:
Soll der Benutzer das Edit-Feld auch direkt bearbeiten können, dann ist mehr Aufwand zu treiben.
procedure TDemoForm.UpDownChanging(Sender: TObject;
var AllowChange: Boolean); begin with Sender as TUpDown do Edit.Text := Format('%.1f mm', [Position / 10]); end; Freundliche Grüße vom marabu |
Re: upDown-Button mit float-Werten
Nein, der Nutzer soll das feld nicht direkt bearbeiten können. Er soll lediglich Werte zwischen 0.1 und 3.0 in 0.1 er Schritten auswählen können, also 0,1 W bis 3 W.
EDIT: Nun soll auch noch zusätzlich ein aus einer TextDatei herausgelesener Wert automatisch eingetragen werden können. Geht das dann ganz einfach mit der Textfunktion des Edit-Feldes oder muß ich da noch mehr beachten? |
Re: upDown-Button mit float-Werten
Zitat:
Delphi-Quellcode:
Getippt und nicht getestet.
function Before(const s, subStr: String): String;
var i: Integer; begin i := Pos(subStr, S); if i = 0 then Result := S else Result := Copy(S, 1, Pred(i)); end; const DEFAULT_WATT = 1.7; procedure Initialize(UpDown: TUpDown; const startValue: String); var d: Double; begin // startValue := '2,4 W'; // eingelesener Wert if not TryStrToFloat(Before(startValue, ' '), d) then d := DEFAULT_WATT; with UpDown do // Eine Dezimalstelle, deshalb mal 10 Position := Round(10 * d); end; marabu |
Re: upDown-Button mit float-Werten
Ok, danke für die Hilfe! :thumb: . Werde damit mal experimentieren.
|
Re: upDown-Button mit float-Werten
Wie genau verbindet man die Initialize-Funktion mit dem TUpDown?!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz