Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Zellinhalt eines StringGrid auf Inhalt prüfen
OliverN_26 - Di 25.12.07 12:41
Titel: Zellinhalt eines StringGrid auf Inhalt prüfen
Hi!
Habe ein StringGrid, in dem ich in 1 Spalte auch Werte verändern oder neu eingaben kann.
Wie kann ich "nach der Eingabe" prüfen, ob die Eingabe auch wirklich nur ein Wert ist (also 1234 ... 345,69 ... 300,1 ... 45677,00) und nicht "xyz" ... "hallo" oder sonstiges. Dachte mir das so in die Richtung "onChange", nur das gibts beim StringGrid nich :-(
Danke
Moderiert von
Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 25.12.2007 um 16:55
Christian S. - Di 25.12.07 17:54
Hallo!
Du könntest z.B. das "OnEditingDone"-Ereignis verwenden.
Grüße
Christian
OliverN_26 - Di 25.12.07 19:19
"OnEditingDone" ???
Das klingt sehr verlockend, aber das hat mein StringGrid nicht als Ereignis ?!
MfG
Christian S. - Di 25.12.07 19:26
Oh, sorry, war zu faul die VM mit Delphi zu starten und hab kurz in Lazarus geguckt. Versuch's stattdessen mal mit ... äh ... OnSetEditText. Das wird allerdings bei jedem Tastendruck ausgelöst :?
OliverN_26 - Di 25.12.07 19:39
Genau das is das Problem. Ich hab in dem blöden StringGrid nur Ereignisse, die beim Betreten einer Zelle was machen, aber nich beim verlassen.
MfG
OliverN_26 - Di 25.12.07 21:48
Ok. Habs hinbekommen
Hab einfach nach jedem Tastendruck geprüft ob nur ',' und Zahlen, und ob vor ',' eine Zahl and am Ende kein ',', sondern eine Zahl ist.
Trifft irgendwas nicht zu, wird das entsprechende falsche Zeichen direkt aus dem Eingabefeld gelöscht.
Was anderes fällt mir nicht ein.
Es erfüllt seinen Zweck. Wer ne bessere Lösung hat darf mir die bitte mitteilen :-)
Danke trotzdem ...
Jerk - Di 25.12.07 22:46
Ich würde es so lösen, dass wenn man eine falsche Taste drückt, überhaut nichts geschrieben wird.
edit äh das is ja praktsich was du meinst -.- mein Fehler
DarkHunter - Mi 26.12.07 00:18
Ob die Lösung besser ist weiß ich nicht, jedoch ist es auf jeden Fall eine Alternative.
Man könnte im OnDrawCell ebenjene Bedingung prüfen und ggf. den Inhalt der Zelle auf Null/einen Standardwert setzen.
Damit wäre das Grid als Nebeneffekt beim Starten direkt mit dem Standardwert gefüllt.
Wobei ich mich Frage, ob man dabei nicht zu oft die Abfrage durchführt, weil das neuzeichnen der Zelle geschieht nicht gerade selten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!