![]() |
maskedit oder edit, wo nur 1 und 0 zugelassen sind
hallo,
ich hab folgendes problem, ich weiß nciht wie ich ein edit fenster mache was nur nullen und einsen zuläßt. ich kapier das komische maskedit nicht so wirklich. danke korn117 |
Re: maskedit oder edit, wo nur 1 und 0 zugelassen sind
Hi,
ist eigentlich simpel. Verwende das Ereignis OnKeyPress mit folgendem Code:
Delphi-Quellcode:
"#8" wird benötigt, damit die Rückwärtstaste funktioniert.
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char); begin if not (key in [#8,'0'..'1']) then key:=#0; end; Grüße |
Re: maskedit oder edit, wo nur 1 und 0 zugelassen sind
Dann könnte man immernoch per Copy & Paste andere Zeichen einfügen.
Sorry, kein Lösungsvorschlag von mir, denn ich geh jetzt pennen. =) Gute Nacht. |
Re: maskedit oder edit, wo nur 1 und 0 zugelassen sind
Hallo,
Copy&Paste mit CTRL+C/V scheidet aus, da auch onKeyPress wirkt, sodass nur mehr das Einfügen über das Kontextmenü mit der Maus verhindert werden muß. Variante 1:
Delphi-Quellcode:
Variante 2:
PROCEDURE TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
VAR Handled: Boolean); BEGIN // Verhindert, dass das Kontextmenü aufklappt // etwas brachial und unelegant :-) Handled := True; END;
Delphi-Quellcode:
PROCEDURE TForm1.Edit1Exit(Sender: TObject);
VAR i : Integer; BEGIN // beim Verlassen des Controls auf Gültikeit prüfen... FOR i := 1 TO length(Edit1.Text) DO IF NOT (Edit1.Text[i] IN ['0'..'1']) THEN BEGIN Edit1.Text := ''; Edit1.SetFocus; Exit; END END; |
Re: maskedit oder edit, wo nur 1 und 0 zugelassen sind
Mein Vorschlag dazu wäre noch:
(Natürlich einiges übernommen von APP)
Delphi-Quellcode:
So wird nicht gleich der ganze Edit1.Text gelöscht, sondern nur die ungültigen Zeichen.
PROCEDURE TForm1.Edit1Exit(Sender: TObject);
VAR i : Integer; sTempStr : String; BEGIN // beim Verlassen des Controls auf Gültikeit prüfen... sTempStr := Edit1.Text; FOR i := 1 TO length(sTempStr) DO IF NOT (sTempStr[i] IN ['0'..'1']) THEN Delete(sTempStr, i, 1); Edit1.Text := sTempStr; END; Übrigens würde ich das Kontextmenü nicht abschalten, ich finde es jedenfalls immer sehr unpraktisch, wenn ich ein Programm bedienen muss das sowas macht. |
Re: maskedit oder edit, wo nur 1 und 0 zugelassen sind
Mein Vorschlag:
Du kannst auch einfach ein SpinEdit nehmen :tongue: |
Re: maskedit oder edit, wo nur 1 und 0 zugelassen sind
vielen dank leute hatte schon mit dem ansatz gedacht (onkeypress) aber ich wusste nicht genau wie ich die bedingung schreiben sollte.
danke ciao |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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 by Thomas Breitkreuz