Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu "else" (https://www.delphipraxis.net/60089-frage-zu-else.html)

BackYard 3. Jan 2006 07:27


Frage zu "else"
 
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if Table1.Locate('Username', Edit1.Text, [loCaseInsensitive]) = true then
if Table1.Locate('Password', Edit2.Text, [loCaseInsensitive]) = true then
MessageDlg('OK. Login succesfully!', mtInformation,[mbOk], 0)
Form2.ShowModal
else
MessageDlg('Error. Please Enter .....', mtError,[mbOk], 0)
end;
Hi, kann mir wer sagen, warum da kommt: Semikolon oder Operator fehlt?

ohne das Form2.ShowMdal klappt alles wunderbar.

Gruß bY

Sharky 3. Jan 2006 07:30

Re: Frage zu "else"
 
Hai BackYard,

da fehlt ein begin - end nach der zweiten If-Abfrage

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if Table1.Locate('Username', Edit1.Text, [loCaseInsensitive]) = true then
  begin
    if Table1.Locate('Password', Edit2.Text, [loCaseInsensitive]) = true then
    begin
      MessageDlg('OK. Login succesfully!', mtInformation,[mbOk], 0);
      Form2.ShowModal;
    end
    else
    begin
      MessageDlg('Error. Please Enter .....', mtError,[mbOk], 0);
    end;
  end;
end;
Ich selber schreibe grundsätzlich Begin-End Blöcke. Selbst wenn dazwichen nur eine Codezeile steht. Ich finde das übersichtilicher und es hilft fehler zu vermeiden.

Edit: Nach genauem lesen noch zwei ; eingefügt :oops:

BackYard 3. Jan 2006 07:31

Re: Frage zu "else"
 
okay danke!
is eigentlich ne gute idee!

gruß bY

leddl 3. Jan 2006 07:35

Re: Frage zu "else"
 
Das läuft so trotzdem nicht, Sharky :zwinker:
Zumindest die Zeile
Delphi-Quellcode:
MessageDlg('OK. Login succesfully!', mtInformation,[mbOk], 0)
benötigt ein abschließendes Semikolon. Besser wäre es, wenn die darauf folgende Zeile auch eine bekommen würde, auch wenn das End dahinter es nicht verlangt.

@BackYard:
Der Fehler kommt daher, daß Delphi in der Zeile vor einem End nicht zwingend ein Semikolon als Zeilenabschluß verlangt und es vor Else sogar verbietet. Du hast in der Zeile mit dem MessageDlg keines gemacht, daher kommt Delphi mit der nächsten Zeile durcheinander und meckert. Entfernst du sie, stimmt wieder alles, da vor else kein Semikolon stehen darf.

BackYard 3. Jan 2006 08:46

Re: Frage zu "else"
 
ah ok :>
dankeschön


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