AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit genaue eingabe von Zahlen

Ein Thema von oliver1 · begonnen am 1. Apr 2009 · letzter Beitrag vom 4. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
oliver1

Registriert seit: 25. Mär 2009
7 Beiträge
 
#1

Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:20
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]
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:26
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.
  Mit Zitat antworten Zitat
oliver1

Registriert seit: 25. Mär 2009
7 Beiträge
 
#3

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:30
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!
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:35
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:41
oder ist euch schonmal die Eigenschaft .MaxLength bei den Edits aufgefallen?

im OI den Wert von MaxLength auf 6 setzen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:45
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
  Mit Zitat antworten Zitat
oliver1

Registriert seit: 25. Mär 2009
7 Beiträge
 
#7

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:46
maxlength hab ich schon auf 6 gehabt aber wenn man weniger als 6 zahlen eingeben hat geht es ja trotzdem
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:47
@himitsu, dachte ich auch zuerst dran, aber laut Frage: "und genau 6 zahlen eingegeben werden müssen!!"

@BAMatze, das funktioniert
  Mit Zitat antworten Zitat
oliver1

Registriert seit: 25. Mär 2009
7 Beiträge
 
#9

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:52
@ BAMatze
Danke für deine hilfe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Edit genaue eingabe von Zahlen

  Alt 1. Apr 2009, 08:53
ups, verlesen ... aber dann könnte man zumindestens noch die EditMask mit ausnutzen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr.
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