![]() |
Fehlermeldung bei begin und then
Hab mal noch ne Frage heute:
Ich bekomme hier ne ganze Reihe an Fehlermeldungen rein [Fehler] Unit3.pas(49): E2029 Ausdruck erwartet, aber 'BEGIN' gefunden [Warnung] Unit3.pas(50): W1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein [Fehler] Unit3.pas(57): E2029 ':=' erwartet, aber '=' gefunden [Fehler] Unit3.pas(62): E2029 'END' erwartet, aber 'THEN' gefunden [Warnung] Unit3.pas(170): W1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein [Warnung] Unit3.pas(172): W1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein [Fataler Fehler] VierGewinnt.dpr(5): F2063 Verwendete Unit 'Unit3.pas' kann nicht compiliert werden sehe aber nciht was ich falsch gemacht habe:
Delphi-Quellcode:
procedure Kontrolle(const Target: TStringgrid);
var a, b :integer; begin y:=-1; if begin //<-- das unterstreicht er rot For x := 1 to 6 do begin For a := 1 to 4 do begin For b := 1 to 4 do begin y:=a+b; Target.cells[x,y]=IntToStr(Spieler); end; end; end; end then //<-- und das showmessage('Spieler' +IntToStr(Spieler) +'hat gewonnen!')); end; könnte bitte nochmal wer sein Wissen mit mir teilen??? |
Re: Fehlermeldung bei begin und then
Delphi-Quellcode:
procedure Kontrolle(const Target: TStringgrid);
var a, b :integer; begin y:=-1; if // hier fehlt die Bedingung// begin //
Delphi-Quellcode:
procedure ...
begin if a = b then begin // Ja, a = b end else begin //nein, a ist ungleich b end; end; |
Re: Fehlermeldung bei begin und then
Schleifen in einer If-Abfrage? Was soll das denn werden?
|
Re: Fehlermeldung bei begin und then
Delphi-Quellcode:
das gekennzeichnete ist die bedingung bei mir
begin //<-- das unterstreicht er rot
For x := 1 to 6 do begin For a := 1 to 4 do begin For b := 1 to 4 do begin y:=a+b; Target.cells[x,y]=IntToStr(Spieler);//<-- wenn das bei jedem Schleifendurchlauf wahr ist soll er weiter machen(Bedingung) end; end; end; end |
Re: Fehlermeldung bei begin und then
falls das mit der Schleife im if nicht geht
könnte ich dann nen Unterprogaufruf im If machen praktisch alles ins UP packen und dann das da aufrufen??? |
Re: Fehlermeldung bei begin und then
Ja, das nennt sich "Funktion mit Rückgabewert Boolean" ;)
Oder du definierst vorher ne extra Boolean-Variable, machst deine Schleifen und prüfst dann diese Variable ;) |
Re: Fehlermeldung bei begin und then
Machs halt so:
Delphi-Quellcode:
[Edit]
procedure Kontrolle(const Target: TStringgrid);
var a, b :integer; gefunden: Boolean; begin y:=-1; gefunden := false; begin For x := 1 to 6 do begin For a := 1 to 4 do begin For b := 1 to 4 do begin y:=a+b; gefunden := Target.cells[x,y] = IntToStr(Spieler); If gefunden then break; end; If gefunden then break; end; If gefunden then break; end; end If not gefunden then showmessage('Spieler' +IntToStr(Spieler) +'hat gewonnen!')); end; aus dem Stregreif geschrieben, kann leicht fehlerhaft sein.... |
Re: Fehlermeldung bei begin und then
thx helmi und auch allen anderen danke
Delphi-Quellcode:
das scheint jetzt erstmal zu funzen aber jetzt bekomme ich immer ne Fehlermeldung
procedure Kontrolle(const Target: TStringgrid);
var a, b, r, richtig :integer; gefunden :boolean; begin y:=-1; begin For r := 1 to 6 do begin For a := 1 to 4 do begin richtig:=0; For b := 1 to 4 do begin y:=a+b; gefunden:=Target.cells[r,y]=IntToStr(Spieler); if gefunden=true then richtig:=richtig+1 end; if richtig=4 then break; end; if richtig=4 then break; end; if richtig=4 then break; end; if richtig=4 then showmessage('Spieler' +IntToStr(Spieler) +'hat gewonnen!'); end; "Zugriffsverletzung bei Addresse 07FF0652 in Modul 'dcc90.dll'. Lesen von Adresse 00000000." (8mal 0) was heißt das jetzt????? |
Re: Fehlermeldung bei begin und then
Du hast kein Stringgrig übergeben, sondern nil.
Lass das Target weg und schreib einfach Form1.Stringgrid1... ;) |
Re: Fehlermeldung bei begin und then
Auch wenn es nichts mit deiner Fehlermeldung zu tun hat,
aber ändere:
Delphi-Quellcode:
in
If gefunden=true then
Delphi-Quellcode:
das ist sauberer.
If gefunden then
Es gab darüber auch schon einige Threads.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz