Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

Re: real Zahl prüfen im Stringgrid

  Alt 4. Nov 2003, 15:21
onKeyPress wird jedesmal wenn eine Taste gedrückt wurde abgearbeitet.

Und wenn man den Text der Zelle (die in diesem Moment bearbeitet wird) auf vorhandene Punkte prüft, kann man beim vorhandensein eines Punktes verhindern das ein neuer eingegeben wird.

Delphi-Quellcode:
If (Key := '.') and (Pos(StringGrid1.Cells[StringGrid1.Selection.Left, StringGrid1.Selection.Top]) > 0) Then Key := #0;

If {Punkt wurde eingegeben} and {ist schon ein Punkt vorhanden} Then Key := #0;

Ich würde den Code allerdings noch um ein paar Steuerzeichen erweitern.
Delphi-Quellcode:
StringGrid1.Options := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goEditing]; {kein goRangeSelect}


If StringGrid1.Cells[0, lARow] = MENGE) Then Begin
  //nur '.' und '0'-'9' zulassen
  If not (Key in [#08{Del}, #13{Enter}, #27{ESC}, '.', '0'..'9']) Then Key := #0;
  //wenn '.' eingegeben und schon vorhanden - '.' nicht zulassen
  If (Key := '.') and (Pos(StringGrid1.Cells[StringGrid1.Selection.Left, StringGrid1.Selection.Top]) > 0) Then Key := #0;
End;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat