AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid mit Tausenderpunkt

Ein Thema von bcvs · begonnen am 24. Okt 2016 · letzter Beitrag vom 24. Okt 2016
Antwort Antwort
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#1

Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 11:18
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?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.158 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 11:41
Ich würde es, auf die Schnelle, so machen:

Delphi-Quellcode:
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;
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#3

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 11:53
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#4

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 12:36
Mal ins Blaue geschossen: Eventuell als Editor ein TMaskedEdit verwenden, das entsprechend Tausenderstellen als Maske hat?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.452 Beiträge
 
Delphi 12 Athens
 
#5

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 12:53
Mal ins Blaue geschossen: Eventuell als Editor ein TMaskedEdit verwenden, das entsprechend Tausenderstellen als Maske hat?
Das StringGrid verwendet intern ein TInplaceEdit, was ebenso wie TMaskEdit (ich vermute, das meinst du) direkt von TCustomMaskEdit abgeleitet wird. Dementsprechend kann man im OnGetEditMask des TStringGrid bereits eine passende Maske eingeben. Leider ist das MaskEdit aber nicht so richtig auf solche numerischen Eingaben vorbereitet.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#6

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 15:46
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.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 16:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#8

AW: Stringgrid mit Tausenderpunkt

  Alt 24. Okt 2016, 16:19
Es ist immer wieder schön zu hören, daß es noch einsichtige Kunden gibt.

Ich gratuliere Dir dazu.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz