Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Edit genaue eingabe von Zahlen (https://www.delphipraxis.net/131844-edit-genaue-eingabe-von-zahlen.html)

oliver1 1. Apr 2009 07:20


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:
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.
[edit=mkinzler]Tag korrigiert Mfg, mkinzler[/edit]

BAMatze 1. Apr 2009 07:26

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.

oliver1 1. Apr 2009 07:30

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!

user0815 1. Apr 2009 07:35

Re: Edit genaue eingabe von Zahlen
 
In das OnKeyPress Event:

Delphi-Quellcode:
procedure TFormMain.Edit1KeyPress(Sender: TObject; var Key: Char);
const
  NURZAHLEN = ['0'..'9', #8];
begin
  if not (Key in NURZAHLEN) then Key := #0;
end;
OnExit

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;

himitsu 1. Apr 2009 07:41

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:

BAMatze 1. Apr 2009 07:45

Re: Edit genaue eingabe von Zahlen
 
Zitat:

Zitat von user0815
In das OnKeyPress Event:

Delphi-Quellcode:
procedure TFormMain.Edit1KeyPress(Sender: TObject; var Key: Char);
const
  NURZAHLEN = ['0'..'9', #8];
begin
  if not (Key in NURZAHLEN) then Key := #0;
end;
OnExit

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;

Hier sollte aber das Problem auftreten, dass die Entfern-Taste und auch BackSpace nicht mehr funktionieren. Also müsstest das alles nachprogrammieren oder duschaffst dir, wie ich gesagt hatte alles in eine neue von TEdit abgeleitete Komponente. =komponentenentwicklung]Hier ein sehr gutes Tutorial, wie man neue Komponenten erstellt. Hoffe das hilft dir.

MfG
BAMatze

oliver1 1. Apr 2009 07:46

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:

user0815 1. Apr 2009 07:47

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

oliver1 1. Apr 2009 07:52

Re: Edit genaue eingabe von Zahlen
 
@ BAMatze
:-D :-D Danke für deine hilfe :-D :-D

himitsu 1. Apr 2009 07:53

Re: Edit genaue eingabe von Zahlen
 
ups, verlesen ... aber dann könnte man zumindestens noch die EditMask mit ausnutzen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr.
Seite 1 von 2  1 2      

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