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 TStringGrid, goEditing, Editorinhalt validieren (https://www.delphipraxis.net/141747-tstringgrid-goediting-editorinhalt-validieren.html)

hoika 15. Okt 2009 11:08


TStringGrid, goEditing, Editorinhalt validieren
 
Hallo #,

ich möchte in ein StringGrid Zahlen eingegeben.
Also goEditing gesetzt.

Wie kann ich VOR Schliessen des Editors prüfen,
ob es eine Zahl ist ?

OnSetEditText ist nicht so das richtige,
das wird ja ständig aufgerufen.

An den InplaceEditor komme ich nicht ran,
das wäre aber ideal, weil es ja ein MaskEditor ist.

Ich möchte nämlich in Anhängigkeit der Spalte
Strings oder Double erlauben.


Und so kompliziert wie hier
1
sollte es eigentlich nicht sein ;)



Danke


Heiko

Lannes 15. Okt 2009 12:03

Re: TStringGrid, goEditing, Editorinhalt validieren
 
Hallo,

eine Auseinandersetzung mit StringGrid.EditorMode hilft Dir eventuell weiter.

Zugriff auf den InplaceEditor Link

hoika 15. Okt 2009 12:55

Re: TStringGrid, goEditing, Editorinhalt validieren
 
Hallo,

ahhhhhh.
Der Link sieht gut aus.

Schon wieder dieser Hack-Trick ;)

Danke


Heiko

Mysterio08 16. Okt 2009 16:17

Re: TStringGrid, goEditing, Editorinhalt validieren
 
Es geht doch auch ganz einfach mit der Val-Funktion. Wenn die Eingabe nicht korrekt ist, wird der Benutzer informiert und in die Zelle "zurückgeschickt". Du kannst den Nutzer unterstützen, indem du ein Komma zum Punkt umwandelst etc.

hoika 17. Okt 2009 09:15

Re: TStringGrid, goEditing, Editorinhalt validieren
 
Hallo,

wie man das prüft, ist schon klar ;)
Ich nehme natürlich nicht val,
sondern TryStrtoX (jaja, intern wird val verwendet)

Zitat:

"zurückgeschickt"
Genau das ist das Problem.
Ich müsste also den Inhalt des Editors bei jedem OnChange prüfen,
und mir vor allem den vorigen Inhakt merken.


Heiko

Hansa 17. Okt 2009 16:20

Re: TStringGrid, goEditing, Editorinhalt validieren
 
Warum soll man denn überhaupt zulassen, dass ungültige Zeichen eingegeben werden können ? :shock: Fang die doch gleich vorher ab.
Delphi-Quellcode:
procedure Tfrm.sgKeyPress(Sender: TObject; var Key: Char);
begin
  ZulZeichen := [#8,#13,#27,'0'..'9'];
  with Sender as TExtStringGrid do begin
    if key in ZulZeichen then begin

hoika 17. Okt 2009 18:27

Re: TStringGrid, goEditing, Editorinhalt validieren
 
Hm,

ist auch ne Lösung.
Danke


Heiko


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