![]() |
Stringgrid mit Tausenderpunkt
Hallo,
ich habe eine Kundenanforderung: In einem Stringgrid wird eine Zahl eingegeben. Jetzt soll während der Eingabe beim Überschreiten der Tausenderstelle ein Tausenderpunkt erscheinen. Der User tippt z.B. 100 , dann steht im Editor noch 100, dann tippt er noch eine 0 und im Editor steht 1.000 Hat das schon mal jemand gelöst? |
AW: Stringgrid mit Tausenderpunkt
Ich würde es, auf die Schnelle, so machen:
Delphi-Quellcode:
Finde es aber keine gute Idee, weil so etwas nie vernünftig klappt wenn ich z.B. am Anfang oder mittendrin mit dem Tastatur-Cursor etwas herauslösche dann der String wieder kürzer werden kann. Das verwirrt immer. Ich würde, zum schön aussehen, ein Label daneben machen wo es im Endeffekt noch einmal redundant, aber im "schön" drinsteht. Denn als nächstes willst du einen Suffix wie ein Währungszeichen noch mit drin haben, da wird das noch verwirrender. Ich würde es nicht machen.
procedure TForm1.Edit1Change(Sender: TObject);
var asString: String; asInteger: Integer; begin asString := Edit1.Text; asString := asString.Replace(FormatSettings.ThousandSeparator, EmptyStr); if Integer.TryParse(asString, asInteger) then begin Edit1.Text := String.Format('%.0n', [ asInteger.ToSingle() ]); Edit1.SelStart := String(Edit1.Text).Length; Edit1.SelLength := 0; end; end; |
AW: Stringgrid mit Tausenderpunkt
Ich denke, man kann so etwas zwar machen, aber nicht während der Eingabe (wie Günther bereits erläutert hat), sondern erst nach dem Editieren.
|
AW: Stringgrid mit Tausenderpunkt
Mal ins Blaue geschossen: Eventuell als Editor ein TMaskedEdit verwenden, das entsprechend Tausenderstellen als Maske hat?
Sherlock |
AW: Stringgrid mit Tausenderpunkt
Zitat:
|
AW: Stringgrid mit Tausenderpunkt
Ja, das mit dem OnGetEditMask habe ich schon ausprobiert.
Die Maske soll in meinem Fall aber nicht verwendet werden, wenn der einzugebende Wert <=100 ist. Erst wenn die 1000er- Stelle ins Spiel kommt, soll der Punkt eingeblendet werden. Ich habe jetzt den Kunden davon überzeugen können, dass das nicht optimal ist und jetzt werden die Zahlen erst nach der Eingabe formatiert und rechtsbündug im Grid angezeigt. |
AW: Stringgrid mit Tausenderpunkt
Naja. Zur Not kann man sowas ja immer noch selbst programmieren. Ist zwar etwas Aufwand alle Eventualitäten abzufangen, aber das hat das Programmieren eben so an sich. :stupid:
|
AW: Stringgrid mit Tausenderpunkt
Es ist immer wieder schön zu hören, daß es noch einsichtige Kunden gibt. :thumb:
Ich gratuliere Dir dazu. Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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