Autor Beitrag
Biarchiv
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: Do 22.07.04 09:33 
Hallo,

kann man das Editfeld unter Delphi3 so sperren das nur Zahlen von
0-9999 eingegeben werden können. Also auch keine Buchstaben und anderes?
Viper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Do 22.07.04 10:00 
Hi.

Du musst das über das OnKeyPress Ereignis machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TNewFileForm.EditKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0' .. '9'#8#13#35#36#37#39]) then
    Key := #0;
end;

Das erste in der Klammer sind die Zahlen und der Rest sowas wie die Enter-Taste, Entf-Taste, usw.

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)
Dragonhunter
Hält's aus hier
Beiträge: 10

Win7
D7 Pers
BeitragVerfasst: Do 22.07.04 10:20 
Ich benutze D7 und kenn mich mit älteren Versionen nicht aus, aber bei mir funktioniert das so :
ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
        if not (Key in[#8, #9, #48 .. #57]) then Key:=#0;
end;

Erklärung:
8 = Backspace
9 = Tabulator
48 - 57 = 0 - 9

Die kompletten ASCII-Codes findest Du hier www.delphi-source.de.../codes/asciiansi.php

Um die Eingabelänge des Edit-Feldes auf 4 Stellen zu beschränken mußt Du folgendes einfügen (z.B. im FormCreate-Ereignis) : Edit1.MaxLength:=7;

Hab ich alles entweder von [url]www.swissdelphicenter.ch[/url] oder [url]www.delphi-source.de[/url]. :gruebel:
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Do 22.07.04 12:07 
Ich kann von dieser Methode nur abraten, da sie auch das Kopieren und Einfügen mit der Tastatur unmöglich macht. Ich verwende häufig diesen Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Edit1Change(Sender: TObject);
var SS,SL,i:integer;
    Buf:string;
begin
 with Sender as TEdit do begin
  SS:=SelStart;
  SL:=SelLength;
  SetLength(Buf,0);
  for i:=1 to length(Text) do if Text[i] in ['0'..'9'then Buf:=Buf+Text[i];
  Text:=Buf;
  SelStart:=SS;
  SelLength:=SL;
 end;
end;
Dann geht auch Strg+C und Strg+V.

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Dragonhunter
Hält's aus hier
Beiträge: 10

Win7
D7 Pers
BeitragVerfasst: Do 22.07.04 12:23 
@maxk : Stimmt. Ist mir in meinem Prog bisher nicht aufgefallen, da man in den entsprechenden Feldern eigentlich nichts kopiert/einfügt.
Aber gut zu wissen, falls ich's mal brauche sollte!
firus1983
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 170

Win98,XP,
D6 Entrpr
BeitragVerfasst: Fr 23.07.04 07:46 
Ein guter Tipp !
Ich war schon mal drauf und drann die Frage ins Forum zu posten, weil es mir mal aufgefallen war, hab' dann aber irgendwie schwerwiegendere Probs an meinem Prog festgestellt.... *g*