Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zahl in Edit Feld eingeben (https://www.delphipraxis.net/86784-zahl-edit-feld-eingeben.html)

rambospike 19. Feb 2007 18:14


Zahl in Edit Feld eingeben
 
Hallo nochmal.

Ich habe ein kleines Programm geschrieben, in dem anfangs in einem edit-Feld eine Zahl eingegeben werden muss.
Jetz möchte ich aber, dass die Zahl nicht größer als 50 sein darf.
Was kann ich tun, damit bei Eingabe größerer Zahlen die Routine nicht durchläuft, sondern der Focus im edit-feld bleibt und eine Zahl zwischen 0 und 50 eingegeben werden muß?

Vielen Dank für eure Hilfe.

mkinzler 19. Feb 2007 18:17

Re: Zahl in Edit Feld eingeben
 
Könnte man im Change-Event abprüfen

Christian18 19. Feb 2007 18:19

Re: Zahl in Edit Feld eingeben
 
Hallo,

vieleicht kann ich dir damit weiterhelfen.

Delphi-Quellcode:
  var i : Integer;
begin
  // Zahl in Variable einlesen
  i:=StrToInt(Edit1.Text);

  // Prüfen, ob Zahl größer 50
  if i > 50 then
    begin
      Edit1.SetFocus;
    end
  else
    begin
      // Was hier passieren soll, liegt in deinem ermessen
    end;
end;
//
PS: Ich hoffe ich konnte dir helfen.

MFG Christian18

inherited 19. Feb 2007 18:34

Re: Zahl in Edit Feld eingeben
 
Alternativ könntest du auch die Komponente TSpinEdit benutzen. Das ist eine Art Edit, in das nur Zahlen eingegeben werden können. Der Breich ist dabei einstellbar.

rambospike 19. Feb 2007 18:53

Re: Zahl in Edit Feld eingeben
 
Hallo Christian,
dein Tip hat funktioniert.
Vielen Dank dafür.

herzliche Grüße von

rambospike

h4rt1 4. Mär 2007 15:36

Re: Zahl in Edit Feld eingeben
 
und wie kann ich festlegen, dass nur Zahlen eingetragen werden ohne das SpinEdit? Weil hab das irgendwie in meinem Delphi 7 nicht drin :)

Klaus01 4. Mär 2007 15:42

Re: Zahl in Edit Feld eingeben
 
im Ereignis onKeyPress des Editfeldes
kannst Du alle key abfangen die ungleich 0-9 sind.
Delphi-Quellcode:
if not (key in ['0'..'9',#8]) then
  key := #0;
Grüße
Klaus

FAlter 4. Mär 2007 15:48

Re: Zahl in Edit Feld eingeben
 
Hi,

Auch nicht unter Beispiele (Samples)?

Dann kuck mal unter Win32, da gibt es ein UpDown, wo du unter Associate z. B. ein Edit angeben kannst. Damit kann man den Eingabebereich auch beschränken, außerdem sieht das viel geiler aus.

Eventuell noch was kosmetisches, falls man doch ABC oder eine falschgroße Zahl* eingibt

Delphi-Quellcode:
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  Edit1.Text := IntToStr(UpDown1.Position);
end;
Zu dem Beitrag vor mir in dem roten Rahmen: Man sollte zumindest - noch erlauben.

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', #8, '+', '-']) then
    key := #0;
end;
Mfg
FAlter

*) Geiler Neologismus!

Klaus01 4. Mär 2007 15:52

Re: Zahl in Edit Feld eingeben
 
Zitat:

Zitat von FAlter
Zu dem Beitrag vor mir in dem roten Rahmen: Man sollte zumindest - noch erlauben.

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', #8, '+', '-']) then
    key := #0;
end;
Mfg
FAlter

*) Geiler Neologismus!

wozu?
Zitat:

Zitat von rambospike
edit-feld bleibt und eine Zahl zwischen 0 und 50

Grüße
Klaus

h4rt1 4. Mär 2007 15:53

Re: Zahl in Edit Feld eingeben
 
bzw gibts doch :P

FAlter 4. Mär 2007 15:58

Re: Zahl in Edit Feld eingeben
 
Hi,

Zitat:

Zitat von Klaus01
wozu?
Zitat:

Zitat von rambospike
edit-feld bleibt und eine Zahl zwischen 0 und 50


Weil rambospike <> h4rt1. Und letzterer wollte insbesondere Verhindern, dass nicht-Zahlen eingegeben werden, wie ich es verstanden habe. Wenn natürlich negative Zahlen unnötig sind, kann man das - auch weglassen.

Mfg
FAlter

Matze 4. Mär 2007 17:19

Re: Zahl in Edit Feld eingeben
 
Zitat:

Zitat von h4rt1
und wie kann ich festlegen, dass nur Zahlen eingetragen werden ohne das SpinEdit? Weil hab das irgendwie in meinem Delphi 7 nicht drin :)

Ohne weiteres sauber gar nicht. Du müsstest im OnChange selbst überprüfen (Delphi-Referenz durchsuchenVal oder Delphi-Referenz durchsuchenTryStrToInt) ob es sich um eine Zahl handelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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