Autor Beitrag
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 25.12.07 12:41 
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 user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 25.12.2007 um 16:55
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 25.12.07 17:54 
Hallo!

Du könntest z.B. das "OnEditingDone"-Ereignis verwenden.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 25.12.07 19:19 
"OnEditingDone" ???
Das klingt sehr verlockend, aber das hat mein StringGrid nicht als Ereignis ?!

MfG
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 :?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 251

Vista Ultimate, Ubuntu
Turbo Delphi 2006
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: 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.

_________________
I believe that every human has a finite number of heart-beats. I don't intend to waste any of mine running around doing exercises.
- Neil Armstrong