Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   fehler bei if-then (https://www.delphipraxis.net/58922-fehler-bei-if-then.html)

mr-unbekannt 14. Dez 2005 16:17


fehler bei if-then
 
hello

wenn ich bei den edit felder weniger zeichen als 38 eingebe, dann kommt das Fenster Couldnot login
UND danach auch noch das User successfully logged in fenster, somit speichert es mir die textdatei ab, obwohl ich weniger zeichen als 38 eingegeben habe...fehler?wo?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e: String;

begin
 a:=Combobox1.Text;
 b:=Combobox2.Text;
 c:=Edit1.Text;
 d:=Edit2.Text;
 e:=Combobox3.Text;

if length(Combobox1.Text)+length(Combobox2.Text) + length(Edit1.Text)
+ length(Edit2.Text) + length(Combobox3.Text) < 39
then ShowMessage('Could not login!')
else
ListBox1.Items.Add(Combobox1.text);
ListBox1.Items.Add(Combobox2.text);
ListBox1.Items.Add(Edit1.text);
ListBox1.Items.Add(Edit2.text);
ListBox1.Items.Add(Combobox3.text);
ListBox1.Items.SaveToFile('C:\\data.txt');
ShowMessage('User successfully logged in!');
Close;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
if fileexists('C:\\data.txt') then ListBox1.Items.LoadFromFile('C:\\data.txt');

end;

Binärbaum 14. Dez 2005 16:30

Re: fehler bei if-then
 
Der Fehler liegt wohl im Quelltext, da fehlt ein begin und ein end für den Else-Zweig des if. (Ich gehe mal davon aus, dass bei else nicht nur die eine nachfolgende Anweisung erldigt werden soll, sondern alle Listbox1. ...-Anweisungen.)

MfG
Binärbaum

mr-unbekannt 14. Dez 2005 16:35

Re: fehler bei if-then
 
oh danke, ich hab garnicht gewusst, dass man bei dem else zweig eigens begin + end schreiben muss

=> i am newbe

danke

zecke 14. Dez 2005 16:35

Re: fehler bei if-then
 
:hi:

Außerdem musst (bin mir plötzlich unsicher und sage lieber solltest zwecks übersichtlichkeit :mrgreen:) du die einzelnen Argumente die If [hier] then stehen in Klammern packen wenn du mehrere Operatoren verwendest.

:hi:

Binärbaum 14. Dez 2005 16:39

Re: fehler bei if-then
 
Zitat:

Zitat von mr-unbekannt
oh danke, ich hab garnicht gewusst, dass man bei dem else zweig eigens begin + end schreiben muss

Das ist jedoch nur nötig, wenn im else-Zweig mehr als eine Anweisung stehen soll. Ohne begin-end wird einfach nur die nächste Anweisung nach dem else auch noch im else-Zweig abgearbeitet.

MfG
Binärbaum

mr-unbekannt 14. Dez 2005 16:41

Re: fehler bei if-then
 
wenn ich das mache steht 'inkompatible typen'....

zecke 14. Dez 2005 16:42

Re: fehler bei if-then
 
Wo kommt denn die Meldung? Wenn Du was genau machst?

Binärbaum 14. Dez 2005 17:05

Re: fehler bei if-then
 
Zitat:

Zitat von zecke
Wo kommt denn die Meldung? Wenn Du was genau machst?

Ich schätze mal in der if-Anweisung, genauer gesagt bei der Bedingung, kommt der Fehler, falls man falsch klammert. Wenn das nicht stimmt, kann mr-unbekannt (seltsamer Name ;)) ja nochmal sagen, wo genau der Fehler auftritt.

Der Abschnitt
Delphi-Quellcode:
if length(Combobox1.Text)+length(Combobox2.Text) + length(Edit1.Text)
+ length(Edit2.Text) + length(Combobox3.Text) < 39
then
wäre mit Klammerung folgendes:
Delphi-Quellcode:
if ((length(Combobox1.Text)+length(Combobox2.Text) + length(Edit1.Text)
+ length(Edit2.Text) + length(Combobox3.Text)) < 39)
then
MfG
Binärbaum


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