Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem mit if then schleife (https://www.delphipraxis.net/91698-problem-mit-if-then-schleife.html)

PetBurki 8. Mai 2007 20:16


Problem mit if then schleife
 
Ich hab folgendes geschrieben un da meldet er immer den fehler end expected but else found , könnt ihr mir halfen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var schuss, leben :integer;
begin
randomize;
edit4.Text:='';
schuss:=random(10);
leben:=StrToInt(edit2.Text)-schuss;
edit4.Text:=IntToStr(schuss);
edit2.Text:=IntToStr(leben);

        if StrToInt(edit2.Text)<=0  then
        label7.visible:=true;
        button1.Enabled:=false;
        button2.Enabled:=false
        else
        label7.Visible:=false;
        button1.Enabled:=false;
        button2.Enabled:=true;
vielen dank im vorraus!

[edit=SirThornberry]Delphi-Tags gesetzt. Nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]

uwewo 8. Mai 2007 20:19

Re: Problem mit if then schleife
 
Nächstesmal mit Delphi TAGS

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var schuss, leben :integer;
begin
randomize;
edit4.Text:='';
schuss:=random(10);
leben:=StrToInt(edit2.Text)-schuss;
edit4.Text:=IntToStr(schuss);
edit2.Text:=IntToStr(leben);

if StrToInt(edit2.Text)<=0 then
begin
label7.visible:=true;
button1.Enabled:=false;
button2.Enabled:=false
end
else
begin
label7.Visible:=false;
button1.Enabled:=false;
button2.Enabled:=true;
end;
end;

jbg 8. Mai 2007 20:19

Re: Problem mit if then schleife
 
Da fehlen wohl zwei mal "begin" und "end".


Übrigens wie oft wird denn deine "If-Schleife" wiederholt und wo ist die Laufvariable für die Schleife. :gruebel:

mkinzler 8. Mai 2007 20:20

Re: Problem mit if then schleife
 
Sequenzen bettet man in begin..end ein:
Delphi-Quellcode:
if StrToInt(edit2.Text)<=0  then
begin
        label7.visible:=true;
        button1.Enabled:=false;
        button2.Enabled:=false;
end
else
begin
        label7.Visible:=false;
        button1.Enabled:=false;
        button2.Enabled:=true;
end;

Alter Mann 8. Mai 2007 20:21

Re: Problem mit if then schleife
 
?

Doch wohl eher so:

Delphi-Quellcode:
if StrToInt(edit2.Text)<=0  then
begin
..
end
else
begin
end
...

DP-Maintenance 8. Mai 2007 20:22

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.

PetBurki 8. Mai 2007 20:24

Re: Problem mit if then schleife
 
einmal pro onbuttonclick

Jetzt meldet er mir den Fehler, dass er ein simikolon will, und wenn ich ichs hinmache, sagt er: Decleration expected but else found. So sieht es grad aus:

procedure TForm1.Button1Click(Sender: TObject);
var schuss, leben :integer;
begin
randomize;
edit4.Text:='';
schuss:=random(10);
leben:=StrToInt(edit2.Text)-schuss;
edit4.Text:=IntToStr(schuss);
edit2.Text:=IntToStr(leben);

if StrToInt(edit2.Text)<=0 then
label7.visible:=true;
button1.Enabled:=false;
button2.Enabled:=false
end
else
begin
label7.Visible:=false;
button1.Enabled:=false;
button2.Enabled:=true;
end;

PetBurki 8. Mai 2007 20:26

Re: Problem mit if then schleife
 
Zitat:

Zitat von Alter Mann
?

Doch wohl eher so:

Delphi-Quellcode:
if StrToInt(edit2.Text)<=0  then
begin
..
end
else
begin
end
...

zwischen begin und end nichts zu schreiben, ist doch ziemlich sinnlos, oder? Ich habs mal trotzdem versucht, klappt auch wie erwartet nicht!

SirThornberry 8. Mai 2007 20:26

Re: Problem mit if then schleife
 
bitte setze die Delphi-Tags! Klicke dazu auf http://www.delphipraxis.net/template.../icon_edit.gif um deinen Beitrag nochmal ändern zu können und schreibe dann
[ delphi ]
dein Quelltext
[ /delphi ]

(leerzeichen zwischen den eckigen klammern weg lassen)

Zudem verwende bitte die Editfunktion auch um deine Beiträge zu ergänzen anstelle 2 Beiträge direkt hintereinander zu verfassen :)

mkinzler 8. Mai 2007 20:27

Re: Problem mit if then schleife
 
Was ja nur um dir die Syntax zu zeigen

dominikkv 8. Mai 2007 20:37

Re: Problem mit if then schleife
 
schreib doch einfach die allererste antwort ab

Rainer1000 8. Mai 2007 21:21

Re: Problem mit if then schleife
 
Also zuallererst: Es gibt keine If-Schleifen, sondern nur If-Alernativen...

und ich glaub, dein Problem erledigt sih von alleine, wenn du mal die korrekte Syntax verwendest:

Delphi-Quellcode:
if <Bedingung> then
  begin
    //Aufgabenteil der bei then Ausgeführt wird, jden einzelnen Befehl mit einem Semikolon versehen
  end     //KEIN SEMIKOLON hinter diesem End
else
  begin
    //Else-Aufgabenteil,jden einzelnen Befehl mit einem Semikolon versehen
  end; //Hier kommt ein Semikolon
Und das Semikolon wollte er, weil du ein beginvergessen hast

Axxus 8. Mai 2007 22:13

Re: Problem mit if then schleife
 
Zitat:

Zitat von Rainer1000
Also zuallererst: Es gibt keine If-Schleifen, sondern nur If-Alernativen...

Genau denn Der unterschied zwischen Einer Schleife und einer Verzweigung (If...then) ist, dassbei einer Schleife EIn bestimmter Teill quelltext wiederolt wird, bis die austritts- /wiedereintrittsbedingung (Je nach typ der Schleife) erfüllt ist. Bei der Verzweigung wird ein Teil Quelltext nur einmal bearbeitet, es wird aber unterschieden welcher Teil des Quelltextes.

Musst ichheut im Infounterricht erklären :mrgreen:

Gruß Axxus

Luckie 8. Mai 2007 22:40

Re: Problem mit if then schleife
 
Was die Fehlersuche wesentlich vereinfachen würde, wenn nicht sogar überflüssig machen würde, wäre wenn man den Quellcode gescheit formatiert. :roll:

PetBurki 9. Mai 2007 06:56

Re: Problem mit if then schleife
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich weis nicht wieso, aber obwohl ich es genauso gemacht habe, wie ihr es gesagt habt, funktioniert es nicht. Ich hab mal die komplette datei angehängt. Wär schön, wenn jemand mal drüberschauen könnte.

mkinzler 9. Mai 2007 06:59

Re: Problem mit if then schleife
 
Scheinbar ist es sehr schwer ein begin nach dem then einzufügen.

PetBurki 9. Mai 2007 07:06

Re: Problem mit if then schleife
 
hey, ich habs genauso gemacht, wie ihrs beschrieben habt-es funktioniert aber trotzdem nicht!

mkinzler 9. Mai 2007 07:08

Re: Problem mit if then schleife
 
Nein hast du nicht
Zitat:

Delphi-Quellcode:
 if StrToInt(edit2.Text)<=0  then
        label7.visible:=true;
        button1.Enabled:=false;
        button2.Enabled:=false
        end
        else
        begin
        label7.Visible:=false;
        button1.Enabled:=false;
        button2.Enabled:=true;
        end;

Nach dem then fehlt ein begin

und Beiu Button2 fehlen die kompletten begin .. end

PetBurki 9. Mai 2007 07:11

Re: Problem mit if then schleife
 
beim 2.Button hab ich auch noch nichts verändert, da erstmal der erste funktionieren sollte, dann hätt ich den 2. berichtigt!

Phoenix 9. Mai 2007 07:13

Re: Problem mit if then schleife
 
Dann schreib doch erstmal das fehlende Begin da rein :wall:

PetBurki 9. Mai 2007 07:13

Re: Problem mit if then schleife
 
vielen dank, habt mir sehr geholfen!

TeronG 9. Mai 2007 07:15

Re: Problem mit if then schleife
 
Vorher:
Delphi-Quellcode:
     
if StrToInt(edit2.Text)<=0  then
label7.visible:=true;
button1.Enabled:=false;
button2.Enabled:=false
end
else
begin
label7.Visible:=false;
button1.Enabled:=false;
button2.Enabled:=true;
end;
Nachher:

Delphi-Quellcode:
if StrToInt(edit2.Text)<=0  then
begin // <--- ;-)
  label7.visible:=true;
  button1.Enabled:=false;
  button2.Enabled:=false
end
else
begin
  label7.Visible:=false;
  button1.Enabled:=false;
  button2.Enabled:=true;
end;

[EDIT] .. (viel) zu langsam :? ^^

hoika 9. Mai 2007 07:19

Re: Problem mit if then schleife
 
Hallo,

#edit: viiiel zu langsam ;(

das ist dein Code, wenn du mal hören würdest,
was man dir sagt (formatieren)

Delphi-Quellcode:
  if StrToInt(edit2.Text)<=0  then
    label7.visible:=true;
    button1.Enabled:=false;
    button2.Enabled:=false
  end
  else
  begin
    label7.Visible:=false;
    button1.Enabled:=false;
    button2.Enabled:=true;
  end;
Wie du jetzt unschwer erkennen kannst , fehlt ein begin

Delphi-Quellcode:
  if StrToInt(edit2.Text)<=0  then
  begin  // das hat gefehlt
    label7.visible:=true;
    button1.Enabled:=false;
    button2.Enabled:=false
  end
  else
  begin
    label7.Visible:=false;
    button1.Enabled:=false;
    button2.Enabled:=true;
  end;

Heiko

TBx 9. Mai 2007 07:26

Re: Problem mit if then schleife
 
und nimm Dir den Rat von Luckie zu Herzen.

Ist so doch viel übersichtlicher, oder?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var schuss,
    leben    : integer;
begin
  randomize;
  edit4.Text := '';
  schuss := random(10);
  leben := StrToInt(edit2.Text) - schuss;
  edit4.Text := IntToStr(schuss);
  edit2.Text := IntToStr(leben);

  if StrToInt(edit2.Text) <= 0  then
  begin
    label7.visible := true;
    button1.Enabled := false;
    button2.Enabled := false
  end
  else
  begin
    label7.Visible := false;
    button1.Enabled := false;
    button2.Enabled := true;
  end;
end;
Eine entsprechende Anleitung findest du z. B. hier.
Welche Quelltextformatierung Du im Endeffekt wählst, mußt Du natürlich selbst entscheiden. Wichtig ist nur, dass der Quelltext auch für andere lesbar wird (und somit auch für Dich, Du schaust da sonst nach einiger Zeit selbnst niucht mehr durch).

Gruß

Thomas

PS: Herzlich willkommen in der Delphi-Praxis.
Wer hier Hilfe sucht, wird diese in der Regel auch bekommen. Aber lies Dir bitte die Antworten genau durch. Wir investieren alle gerne ein wenig Zeit, um anderen zu helfen. Dafür erwarten wir aber auch, dass der Fragesteller sich die Zeit nimmt, die Antworten durchzuarbeiten.
[TrotzRotemKastens]Weil ein Link zu einem Styleguide drin ist[/TrotzRotemKastens]

Luckie 9. Mai 2007 08:05

Re: Problem mit if then schleife
 
Und wenn man einen automatischen Codeformatierer benutzt, dann sieht man sogar an den Einrückungen, die der Codeformatierer macht, wenn irgendwo was nicht stimmt.


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