![]() |
Edit genaue eingabe von Zahlen
hallo,
ich habe vor kurzem angefangen zu Programmieren und wollte wissen wie ich es machen kann das keine Buchstaben eingegeben werden dürfen und genau 6 zahlen eingegeben werden müssen!! Sonst soll eine Fehlermeldung erscheinen! ich benutze Delphi Version 5. wo genau soll es in das programm hingeschrieben werden???
Delphi-Quellcode:
[edit=mkinzler]Tag korrigiert Mfg, mkinzler[/edit]
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin edit2.text:=FormatDateTime('ddmmyy', Now); edit2.Visible:=false; end; procedure TForm1.Button1Click(Sender: TObject); var a, b, ausgabe: integer ; begin a:=strtoint(edit1.text); b:=strtoint(edit2.text); ausgabe:= (a xor b xor 840917 mod 1000000); edit3.text:=inttostr(ausgabe); end; procedure TForm1.Button2Click(Sender: TObject); begin edit1.clear; edit2.clear; edit3.clear; edit2.text:=FormatDateTime('ddmmyy', Now); end; end. |
Re: Edit genaue eingabe von Zahlen
Also du könntest dir eine eigene Komponente von TEdit ableiten und in der die Eingabe nur von bestimmten Zeichen zugelassen sind. Das halte ich für den einfachsten Weg.
|
Re: Edit genaue eingabe von Zahlen
und wie mach ich das dann genau und wo schreib ich das hin???
und wie mach ich das genau 6 zahlen in das edit-feld eingegeben werden müssen! |
Re: Edit genaue eingabe von Zahlen
In das OnKeyPress Event:
Delphi-Quellcode:
OnExit
procedure TFormMain.Edit1KeyPress(Sender: TObject; var Key: Char);
const NURZAHLEN = ['0'..'9', #8]; begin if not (Key in NURZAHLEN) then Key := #0; end;
Delphi-Quellcode:
procedure TFormMain.Edit1Exit(Sender: TObject);
begin if Length(Edit1.Text) <> 6 then begin Edit1.SetFocus; Application.MessageBox(PAnsiChar('6 Zahlen'), 'Fehler', MB_OK + MB_ICONINFORMATION); end; end; |
Re: Edit genaue eingabe von Zahlen
oder ist euch schonmal die Eigenschaft .MaxLength bei den Edits aufgefallen? :angel2:
im OI den Wert von MaxLength auf 6 setzen :zwinker: |
Re: Edit genaue eingabe von Zahlen
Zitat:
![]() MfG BAMatze |
Re: Edit genaue eingabe von Zahlen
maxlength hab ich schon auf 6 gehabt aber wenn man weniger als 6 zahlen eingeben hat geht es ja trotzdem :zwinker:
|
Re: Edit genaue eingabe von Zahlen
@himitsu, dachte ich auch zuerst dran, aber laut Frage: "und genau 6 zahlen eingegeben werden müssen!!"
@BAMatze, das funktioniert |
Re: Edit genaue eingabe von Zahlen
@ BAMatze
:-D :-D Danke für deine hilfe :-D :-D |
Re: Edit genaue eingabe von Zahlen
ups, verlesen ... aber dann könnte man zumindestens noch die EditMask mit ausnutzen :)
|
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Fragen / Anregungen zur DP" nach "VCL / WinForms / Controls" verschoben.
Hat nix mit der DP zu tun |
Re: Edit genaue eingabe von Zahlen
Zitat:
|
Re: Edit genaue eingabe von Zahlen
Hallo,
um noch mal auf das genau 6 Zahlen zu kommen. Vor dem Ausführen des Codes, der Edit1 neutzen soll
Delphi-Quellcode:
if Length(Edit1.Text)=6 then
begin // ok end else begin // Fehler end; Heiko |
Re: Edit genaue eingabe von Zahlen
Zitat:
Nimm eine TMaskEdit Komponente, setze im ObjektInpektor AutoSelect=false, eine Maske '000000;1;' und eine Vorgabe '000000' für den Text. Dein Anwender kann jetzt die Vorgabe überschreiben. Solange er nicht auf den abwegigen Gedanken kommt, eine der Ziffern zu Löschen ist alles oK. Anderenfalls wird er aufgefordert nach Esc die Änderung rückgangig zu machen. Mit
Delphi-Quellcode:
kannst Du das Löschen ganz unterbinden und jegliche Fehlermeldung verhindern.
procedure TForm1.MaskEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (Key=Vk_Delete) or (Key=Vk_Back) then Key:= 0 end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 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