Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SpinEdit; Wie Komma-Zahlen beibringen? (https://www.delphipraxis.net/3172-spinedit%3B-wie-komma-zahlen-beibringen.html)

Daniel B 26. Feb 2003 20:00


SpinEdit; Wie Komma-Zahlen beibringen?
 
Hallöchen,

wie kann ich dem SE beibringen, das er auch z.B. 0.05, oder 0.1 oder 0.15 usw. akzeptiert?
Geht das überhaupt?

Grüsse, Daniel :hi:

nailor 26. Feb 2003 22:00

So, wie es ist gar nicht. Also neu schreiben, oder den Wert einfach immer hinterher durch 100, 1000... teilen, und in das Edit den 100-fachen Wert schreiben.

Daniel B 26. Feb 2003 22:09

Hmm, das ist nicht so einfach.
Das ding müsste Strings können.
Ich muss 0.05 bis 2.00 einstellen können. Das sind 40 Erhöhungsschritte. Jeder Schritt ist also 0.05.
Immer wenn man auf den Pfeil nach oben oder unten klickt, dann soll eben 0.05 addiert, oder 0.05 subtrahiert werden. Das ist alles.

Grüsse, Daniel :hi:

nailor 26. Feb 2003 22:17

Entweder machst du es so, wie gesagt mit nachträglicher Umrechnung. Oder du verwendest den Sourcecode, der sogar bei der Personal mitgeliefert wird, um ein paar kleine Änderungen vorzunehmen...

Daniel B 26. Feb 2003 22:29

Zitat:

Zitat von Nailor
Oder du verwendest den Sourcecode, der sogar bei der Personal mitgeliefert wird, um ein paar kleine Änderungen vorzunehmen...

Das hab ich mir auch schon überlegt. Aber, ich habe mir mal den Source angeschaut. Ich könnte es zwar so umbauen das es aus Strings nimmt, aber was dann?
Das ding wird nicht von alleine Strings zusammen zählen können.
Im mom. macht es:
Value := Value + FIncrement;
Einfache Strings würde noch gehen, man könnte auch noch bei IsValidChar den . aufnehmen, aber wie dann weiter machen?

Grüsse, Daniel :hi:

oki 27. Feb 2003 07:57

Hallo,

Warum änderst du die Propertys für Value, FIncrement inclusive der zugehörigen Methoden nicht auf den Wert Extended in einem vererbten Object von TSpinEdit? Das macht zwar etwas Arbeit, müßte dann aber problemlos gehen. Über die neuen Eigenschaft Increment vom Typ Extended kannst du dann auch problemlos Deine Schrittweite im Kommabereich einstellen.

Gruß oki

eddy 27. Feb 2003 12:35

Hallo DanielB,

der kleinste Aufwand wäre dann wohl ein Edit und ein SpinnButton.

Code:
const
  eedmax = 2;
  eedmin = 0;
  inkr = 0.05;
var
  wert : real;
procedure TFBrowser.SpinButton1UpClick(Sender: TObject);
begin
  eed.Value := eed.Value + inkr;
  if eed.Value > eedmax then eed.Value := eedmax;

  wert := StrToFloat(Edit1.Text) + inkr;
  if wert > eedmax then wert := eedmax;
  Edit1.Text := FloatToStr(wert);
end;

procedure TFBrowser.SpinButton1DownClick(Sender: TObject);
begin
  eed.Value := eed.Value - inkr;
  if eed.Value < eedmin then eed.Value := eedmin;

  wert := StrToFloat(Edit1.Text) - inkr;
  if wert < eedmin then wert := eedmin;
  Edit1.Text := FloatToStr(wert);
end;
eed ist vom Typ TEnhEdit, geht aber auch mit einem Edit.
Evtl. muß noch Edit ausgewertet werden, wenn man es auch durch Eingeben eines Wertes ändern darf.

mfg
eddy

Daniel B 27. Feb 2003 17:18

Hallo,
Zitat:

Zitat von oki
Über die neuen Eigenschaft Increment vom Typ Extended kannst du dann auch problemlos Deine Schrittweite im Kommabereich einstellen.

Theoretisch würde dies gehen. Ich möchte aber reine Strings, damit ich es in Form von 0.05 anzeigen lassen kann. Bei Integern werden die 0en gestrichen.
Mir geht es rein ums Optische, rechnen tue ich im Hintergrund eh was ganz anderes damit.

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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