AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung bei begin und then

Ein Thema von foerster7892 · begonnen am 25. Okt 2008 · letzter Beitrag vom 25. Okt 2008
Antwort Antwort
Seite 1 von 3  1 23      
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#1

Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 13:48
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???
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 13:51
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;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 13:51
Schleifen in einer If-Abfrage? Was soll das denn werden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#4

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 13:54
Delphi-Quellcode:
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
das gekennzeichnete ist die bedingung bei mir
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#5

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 13:56
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???
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 14:06
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
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 14:10
Machs halt so:

Delphi-Quellcode:
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;
[Edit]
aus dem Stregreif geschrieben, kann leicht fehlerhaft sein....
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#8

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 14:33
thx helmi und auch allen anderen danke

Delphi-Quellcode:
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;
das scheint jetzt erstmal zu funzen aber jetzt bekomme ich immer ne Fehlermeldung

"Zugriffsverletzung bei Addresse 07FF0652 in Modul 'dcc90.dll'. Lesen von Adresse 00000000." (8mal 0)



was heißt das jetzt?????
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 14:46
Du hast kein Stringgrig übergeben, sondern nil.

Lass das Target weg und schreib einfach Form1.Stringgrid1...
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 14:51
Auch wenn es nichts mit deiner Fehlermeldung zu tun hat,
aber ändere:
If gefunden=true then in
If gefunden then das ist sauberer.

Es gab darüber auch schon einige Threads....
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 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