Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TEdit Eigenschaft
Kobald - Fr 14.06.02 21:45
Titel: TEdit Eigenschaft
Gibt es eine Eigenschaft von TEdit, mit der man in einem Edit-Feld NUR Zahlen eingeben kann?
Oder muss ich mir da selbst was schreiben :?
Alfons-G - Fr 14.06.02 23:07
Du kannst an Stelle eines normalen Edit-Feldes ein MaskEdit verwenden. Allerdings musst Du eine feste Maske mit Dezimalpunkt usw. vorgeben. Du kannst für eine Stelle nur festlegen, ob dort eine Zahl stehen muss, oder ob dort auch ein Leerzeichen sein darf. Frei platzierte Dezimalpunkte sind nicht möglich.
Wenn Du so was benötigst, musst Du Dir selbst was basteln und des KeyDown-Ereignis, bzw. die Windows-Botschaft WM_KEYDOWN abfangen.
:idea:
Arakis - Sa 15.06.02 00:59
Titel: SpinEdit
Nimm doch einfach SpinEdit unter "Beispiele". Damit kannst du aber nur Integer-Werte eingeben, d.h. keine Kommazahlen
Bis dann
cbs - Sa 15.06.02 11:51
ich nehme immer folgenden code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| function EditKeyPressFloat(Text: string; Key: Char; curPos: Integer): Char; begin Result:= Key; if not (Key in ['0'..'9', '-', ',', #8]) then Result:= #0; if (Key = '-') and (Length(Text) <> 0) then Result:= #0; if Key = ',' then begin if Pos(',', Text) <> 0 then Result:= #0; if Length(Text) = 0 then Result:= #0 else if Text[curPos] = '-' then Result:= #0; end; end;
function EditKeyPressInteger(Text: string; Key: Char): Char; begin Result:= Key; if not (Key in ['0'..'9', '-', #8]) then Result:= #0; if (Key = '-') and (Length(Text) <> 0) then Result:= #0; end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin Key:= EditKeyPressFloat(Edit1.Text, Key, Edit1.SelStart); end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin Key:= EditKeyPressInteger(Edit2.Text, Key); end; |
in Edit1 kann man real-Zahlen eingeben und bei edit2 nur integer zahlen
Kobald - Mo 17.06.02 16:55
Vielen Dank für eure Hilfe !!!! :P
Ich habs jetzt mal mit SpinEdit gelöst. Funktioniert perfekt da man nur ganze Zahlen eingeben soll !!
Kobald
Alfons-G - Mo 17.06.02 23:09
Das funktioniert auch mit Maskedit gut, wenn Du nur ganze Zahlen brauchst. Falls die Zahl z.B. maximal 5-stellig sein soll, gibst Du einfach '99999' als Maske vor.
:idea:
webmaker - Di 18.06.02 20:43
du kannst doch auch ganz einfach durch ein bischen Code andere Zeichen beid der Tedit sperren
CrazyLuke - Sa 24.06.06 19:49
Titel: Re: SpinEdit
Arakis hat folgendes geschrieben: |
Nimm doch einfach SpinEdit unter "Beispiele". Damit kannst du aber nur Integer-Werte eingeben, d.h. keine Kommazahlen |
Das ist so nicht korrekt - zumindest nicht bei meiner Version. Über die Pfeilschaltflächen wird der "Increment"-Wert berücksichtigt, bei der manuellen Eingabe dagegen nicht.
Wenn ich das Programm von Delphi aus starte, stürzt das Programm bei Eingabe eines falschen Wertes nach Verlassen des SpinEdits ab mit der Meldung, dass z.B. "2,5" kein gültiger Integerwert ist. Starte ich das kompilierte Programm dagegen separat, erscheint keine Fehlermeldung. Benutze ich nach Eingabe eines falschen Wertes die Pfeilschaltflächen, wird so gezählt, als stände eine Null drin.
Wie kann ich die Eingabe eines ungültigen Wertes verhindern?
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!