Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anfängerfrage zu try und except (https://www.delphipraxis.net/24472-anfaengerfrage-zu-try-und-except.html)

sui 21. Jun 2004 16:41


Anfängerfrage zu try und except
 
Moin,

ich dacht, ich fang jetzt auch mal an, selber einfache Dinge zu schreiben.
Ich will so was wie einen Passwortschutz machen. Jedesmal wenn das Passwort richtig
eingegeben ist, soll ein 2. Formular geöffnet werden, das Hauptprogramm. Aber es
hakt schon, ich weiss nur einfach nicht wo.

Code:
var
  Form1: TForm1;
  Zensur: Integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
Zensur := StrtoInt (Edit1.text);
if Zensur = 1 then Form2.ShowModal;
label1.caption := 'Passwort richtig';
  except
label1.caption := 'Passwort falsch';
end;
end;


end.

Meflin 21. Jun 2004 16:44

Re: Anfängerfrage zu try und except
 
in deinem beispiel müsste das wohl eher so heissen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
  Zensur := StrtoInt (Edit1.text);
  if Zensur = 1 then Form2.ShowModal;
  label1.caption := 'Passwort richtig'
  else
  label1.caption := 'Passwort falsch';
  except
  label1.Caption := 'Passwort ungültig';
  end;
end;

alcaeus 21. Jun 2004 17:05

Re: Anfängerfrage zu try und except
 
Zitat:

Zitat von Meflin
in deinem beispiel müsste das wohl eher so heissen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
  Zensur := StrtoInt (Edit1.text);
  if Zensur = 1 then Form2.ShowModal;
  label1.caption := 'Passwort richtig'
  else
  label1.caption := 'Passwort falsch';
  except
  label1.Caption := 'Passwort ungültig';
  end;
end;


Wohl eher so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    Zensur := StrtoInt (Edit1.text);
    if Zensur = 1 then
    begin
      label1.caption := 'Passwort richtig';
      Form2.ShowModal;
    end
    else
      label1.caption := 'Passwort falsch';
  except
    label1.Caption := 'Passwort ungültig';
  end;
end;
Setze die Caption des Labels zuerst, denn ShowModal unterbricht die Ausführung der Unit bis das andere Form geschlossen wird. Außerdem hat Meflin wohl einen begin-end-Block vergessen, was zu einer satten Fehlermeldung beim else geführt hätte.

Greetz
alcaeus

Andreas L. 21. Jun 2004 18:21

Re: Anfängerfrage zu try und except
 
try und except kann man weglassen da durch die if-Abfrage keine Access Violation oder ähliches ausgelöst wird.

alcaeus 21. Jun 2004 19:54

Re: Anfängerfrage zu try und except
 
Zitat:

Zitat von onlinehome
try und except kann man weglassen da durch die if-Abfrage keine Access Violation oder ähliches ausgelöst wird.

Nein, kann man nicht, denn das StrToInt kann eine Exception auslösen.

Greetz
alcaeus

sui 21. Jun 2004 20:15

Re: Anfängerfrage zu try und except
 
Ich bekomme Exceptions wenn ich Buchstaben eingebe.
Jetzt werd ich erstmal eure Sachen probieren.

Thx

alcaeus 22. Jun 2004 03:39

Re: Anfängerfrage zu try und except
 
Zitat:

Zitat von sui
Ich bekomme Exceptions wenn ich Buchstaben eingebe.

Das erinnert mich gerade: Wenn du in den Delphi Debugoptionen die Behandlung von Exceptions nicht ausschaltest, so werden diese trotzdem noch angezeigt. In der Endanwendung werden sie nicht mehr gebracht.

Greetz
alcaeus

Luckie 22. Jun 2004 04:07

Re: Anfängerfrage zu try und except
 
Zitat:

Zitat von sui
Ich bekomme Exceptions wenn ich Buchstaben eingebe.

... dann verhindere, dass Buchstaben eingegeben werden können. Warum das Kind erst in den Brunne fallen lassen, wenn ich es verhindern kann. Entsprechende Lösungen findest du hier in der Delphipraxis (wahrscheinlich sogar in der Codelib).


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