Hallo zusammen,
ich suche eine Möglichkeit, den Max- oder Min-Wert in einem TSpinEditEx oder TFloatSpinEditEx abweichend darzustellen.
Also z.B. für ein TSpinEdit mit dem Bereich 1–11 sollen die angezeigten Werte "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, inf" lauten. D.h. der Wert soll zwar weiterhin 11 sein, aber als "inf" angezeigt werden.
Gibt es da eine einfache Möglichkeit, das umzusetzen oder muss ich eine abgeleitete Klasse erstellen?
Besten Dank
Speziellen Wert in T(Float)SpinEditEx darstellen
Re: Speziellen Wert in T(Float)SpinEditEx darstellen
Nimm ein TEdit und ein TUpDown, kopple die beiden über die Associate-Eigenschaft des UpDown zusammen. TUpDown.Min=1 und TUpDown.Max=11 setzen. Und schließlich bekommt das TEdit den folgenden OnChange-Handler:piula hat geschrieben: ↑Mo 2. Mai 2022, 18:36Also z.B. für ein TSpinEdit mit dem Bereich 1–11 sollen die angezeigten Werte "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, inf" lauten. D.h. der Wert soll zwar weiterhin 11 sein, aber als "inf" angezeigt werden.
Gibt es da eine einfache Möglichkeit, das umzusetzen oder muss ich eine abgeleitete Klasse erstellen?
Code: Alles auswählen
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '11' then
Edit1.Text := 'inf';
end;
-
- Beiträge: 825
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Speziellen Wert in T(Float)SpinEditEx darstellen
Dann hast du wohl noch nie entsprechend mit Fließkommazahlen gearbeitet, da für diese sowohl +Inf als auch -Inf gültige Werte sind und auch entsprechend vom TFloatSpinEditEx akzeptiert werden.
Ändert allerdings nichts daran, dass plula da tatsächlich selbst tätig werden muss, wenn nur ein bestimmter Bereich abgedeckt werden soll.
FPC Compiler Entwickler
Re: Speziellen Wert in T(Float)SpinEditEx darstellen
So geht erst mal:
Zeigt "+Inf" an im FloatSpinEditEx.
Löst nat. das Problem des OP nicht direkt.
Code: Alles auswählen
uses Math;
FloatSpinEditEx1.Value:=Infinity;
FloatSpinEditEx1.Value:=NegInfinity;
Löst nat. das Problem des OP nicht direkt.
Re: Speziellen Wert in T(Float)SpinEditEx darstellen
Danke für den Tipp! Das funktioniert auch mit dem SpinEditEx, wenn man NullValue=12 und NullValueBehavior=nvbMaxValue setzt