![]() |
StringGrid: Eingabekontrolle
Hi!
Ich versuche jetzt schon seit längerer Zeit, Falsche Werte bei der Eingabe in eine Zelle abzufangen (den Artikel ..grid: Wie auf Zelländerungen reagieren (oder so ähnl.) hab ich schon gelesen). Mir ist wichtig, dass Die Fehleingabe (es sollen nur Werte wie '45', '1.2M', '-3,1k'...; eine entsprechende Prüffunktion habe ich bereits geschrieben) sofort rückgängig gemacht werden muss, d.h. nach einer entsprechenden ShowMessage(..) soll sich die gleiche Zelle wieder im EditMode befinden. Bisher habe ich 2 Möglichkeiten ausprobiert: - OnSetEditText - OnSelectCell und OnExit Beide Möglichkeiten lösen das Problem nicht. Danke schonaml für eure Antworten |
Re: StringGrid: Eingabekontrolle
Hrm. Ich würde im OnKeyPress erst gucken, was für restriktionen auf der entsprechenden Zelle gelten und dann bestimmte Tasten erst gar nicht zulassen. Wenn Du im OnKeyPress die Variable Key mit #0 belegst, wird derTastendruck ignoriert.
|
Re: StringGrid: Eingabekontrolle
Nein, das wird m.E. zu kompliziert, es sollen ja auch vorhandene Zellinhalte geändert werden können, und wenn der Benutzer dann mitten in den Text klickt, dann muss ich zuerst mal einen Entscheidungsbaum durchlaufen, der mir die an dieser Stelle möglichen Eingaben ausfindigt macht, neenee.
Bisher habe ich
Delphi-Quellcode:
Die Funktion
procedure TfraLimits.sgdLowSetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String); begin if sgdLow.EditorMode=false then begin if IsDecaStr(Value)=false then begin ShowMessage('Invalid number!(EditText)'); end; end; end;
Code:
hat mich schon einiges an Gehirnschmalz gekostet. Das muss doch auch einfacher gehen: will der Benutzer die Eingabe abschließen oder die Zelle wechseln, so wird der Zellinhalt geprüft, bei ungüligem Inhalt Message und nochmal die gleiche Zelle.
IsDecaStr(string):boolean
Trotzdem Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 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