Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bei keiner Eingabe ins Edit Feld -> programmstop und ... (https://www.delphipraxis.net/5739-bei-keiner-eingabe-ins-edit-feld-programmstop-und.html)

HappyTreeFriend 17. Jun 2003 12:33


Bei keiner Eingabe ins Edit Feld -> programmstop und ...
 
Hi.. ich Programmiere grade etwas..
Es geht um folgendes.

Ich hab jetzt da ein Edit Fenster in das ich nur Zahlen und Komma eingeben kann, hab ich begrenzt durch
if not (key in [#8, #9,#44, #48 .. #57]) then key:=#0;

soweit so gut.

Aber wenn der User einfac nichts eingibt, also das Feld leer bleibt, soll eine Aufforderung kommen (Showmessage) und dann soll der Focus auf das betreffende Edit geetzt werden, wodrauf er eine neue Eingae machen muss.


Ist wahrscheinlich ganz einfach aber ich komme nicht drauf und gesucht hab ich auch danach..

Mein spezielles Prob ist, dass er durch
if (edit2.text='')
then FehlermeldungUndFocus;
else Machweiter;

das gewünschte macht, jedoch fährt er dann normal weiter in der Rotine "button Klick", d.h. er geht zur nächsten if anweisung weiter...

hier mal die ganze Prozedur..

Zitat:

procedure TForm7.Button2Click(Sender: TObject);
begin
if (edit2.text='')
then edit2.setfocus

else w[2]:=StrToFloat(Edit2.text);


if w[2]=w[1]*100
then RichtigEdit2
else FalschEdit2;
end;

Gibt es nicht eine andere Möglichkeit festzulegen, bzw festzustellen, dass wenn der Benutzer in das Edit Feld nichts eingibt, er dazu aufgefordert wird was einzugeben... erst wenn er was eingeben hat solls weiter gehen.. Weil sonst rechnet er mir irgendwas aus und stellt den "Fehler Zähler " eins höher, obwohl ja garnichts eingegeben wurde..

PS: in dem Programm gehts darum aus Metern Centimeter zu machen. Ist ein programm mit dem das "geübt" werden soll..

Flogo 17. Jun 2003 15:39

Versuchs mal mit
Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
begin
if (edit2.text='') then
begin
  showmessage('Bitte geben sie eine Zahl ein');
  edit2.setfocus;
  exit; //Das müsste die Buttonklick eigentlich beenden
end
//du brauchst dann auch kein else mehr

w[2]:=StrToFloat(Edit2.text);
if w[2]=w[1]*100 
then RichtigEdit2 
else FalschEdit2;
end;

HappyTreeFriend 17. Jun 2003 15:56

oki ich versuchs gleich mal Danke!!!!

Luckie 17. Jun 2003 17:01

Oder kuck dir mal das OnExit-Ereigniss des Edits an.


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