AGB  ·  Datenschutz  ·  Impressum  







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

StringGrid: Eingabekontrolle

Ein Thema von weltaran · begonnen am 24. Sep 2003 · letzter Beitrag vom 24. Sep 2003
Antwort Antwort
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#1

StringGrid: Eingabekontrolle

  Alt 24. Sep 2003, 14:49
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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2

Re: StringGrid: Eingabekontrolle

  Alt 24. Sep 2003, 14:50
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: StringGrid: Eingabekontrolle

  Alt 24. Sep 2003, 15:11
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:
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;
Die Funktion
Code:
IsDecaStr(string):boolean
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.

Trotzdem Danke
  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 19:47 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