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 2 von 3     12 3      
foerster7892

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

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:22
@helmi hab ich geändert danke für den tipp

@jfhans aber ich hab ne frage kannst du mir kurz GANZ GENAU sagen was ich in procedure zeile ändern muss (hab mir das heute erst erfragt mit dem unterprogramm auf formular beziehen(das mit dem target))


plz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:25
Zeig doch mal den Aufruf der Prozedur. Außerdem musst Du noch nicht einmal nil übergeben, sondern es genügt, wenn Du Dich mit dem Zeilen-/Spaltenindex vertan hast.
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
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#13

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:28
Hallo Foerster.
Du hast jetzt eine freie Prozedur, aus dieser kannst du nicht direkt auf Controls des Forms zugreifen. Mache daraus eine Methode, dann brauchst du den Parameter gar nicht mehr, weil du das Grid direkt ansprechen kannst.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:30
Zitat von taaktaak:
Du hast jetzt eine freie Prozedur, aus dieser kannst du nicht direkt auf Controls des Forms zugreifen.
Wie bitte?
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
 
#15

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:32
so also mein stringgrid hat 7 Spalten(6 die ich benutze) und 8 Zeilen (7 die ich benutze)

das is der ganze quelltext (soll mal nen 4 Gewinnt werden(muss danach nur noch die Abfrage für spalten und diagonalen machen (nichts vorsagen was die beiden abfragen angeht das will ich alleine austüfteln 8) )))

Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm3 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Label1: TLabel;
    Button8: TButton;
    Button9: TButton;
    procedure Button8Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;
  Spieler, y, x :integer;
implementation

{$R *.dfm}

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
            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;

procedure Spielstein(const Target: TStringgrid);
begin
  If
    Spieler=2
  then
    Spieler:=0;
    Spieler:=Spieler+1;

  If
    (Target.cells[y,1] ='1') or (Target.Cells[y,1] ='2')
  then
    showmessage('Hier passt kein Spielstein mehr rein wählen sie eine andere Reihe!')
  else
    begin
      If
        (target.cells[y,2] ='1') or (target.Cells[y,2] ='2')
      then
        target.cells[y,1]:=IntToStr(Spieler)
      else
        begin
          If
            (target.cells[y,3] ='1') or (target.Cells[y,3] ='2')
          then
            target.cells[y,2]:=IntToStr(Spieler)
          else
            begin
              If
                (target.cells[y,4] ='1') or (target.Cells[y,4] ='2')
              then
                target.cells[y,3]:=IntToStr(Spieler)
              else
                begin
                  If
                    (target.cells[y,5] ='1') or (target.Cells[y,5] ='2')
                  then
                    target.cells[y,4]:=IntToStr(Spieler)
                  else
                    begin
                      If
                        (target.cells[y,6] ='1') or (target.Cells[y,6] ='2')
                      then
                        target.cells[y,5]:=IntToStr(Spieler)
                      else
                        target.cells[y,6]:=IntToStr(Spieler)
                    end;
                end;
            end;
        end;
    end;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  y:=1;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button2Click(Sender: TObject);
begin
  y:=2;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button3Click(Sender: TObject);
begin
  y:=3;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button4Click(Sender: TObject);
begin
  y:=4;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button5Click(Sender: TObject);
begin
  y:=5;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button6Click(Sender: TObject);
begin
  y:=6;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button7Click(Sender: TObject);
begin
  y:=7;
  Spielstein(Stringgrid1);
  Kontrolle(Stringgrid1)
end;

procedure TForm3.Button8Click(Sender: TObject);
begin
  For y:= 1 to 7 do
  begin
    For x:= 1 to 6 do
    begin
      Stringgrid1.Cells[y,x]:='';
    end;
  end;
end;

procedure TForm3.Button9Click(Sender: TObject);
begin
  close;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:38
Zitat:
Delphi-Quellcode:
        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);
Wenn a = 4 und b = 4, wird y zu 8, da Du 8 Zeilen hast, hat die letzte den Index 7. Du liest also über die verfügbaren Zeilen hinaus. Vermutlich gibt es noch mehrere solche Stellen, ich habe beim ersten Fund aufgehört zu suchen.
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
 
#17

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:44
ich lese nciht über die zeilen hinaus

mit dem ersten kontrolliere ich die spalten
mit dem zweien such ich mir jeweils eine spalte aus
und mit dem letzten kontrolliere ich die diese und die 3 folgenden auf true
wo gehe ich da über die zeilen hinaus???????????????? 1-7 nutze ich und die 0.Zeile lass ich weg
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#18

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:46
Zitat:
Wie bitte?
Detlef, sorry! Hab es anders gemeint, als geschrieben! Bitte meine Bemerkung ganz schnell vergessen
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:51
Bei 8 Zeilen hat die erste Index 0 und die letzte Index 7. Jeder Zugriff auf Cells[x,8] führt ins Nirvana.
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
 
#20

Re: Fehlermeldung bei begin und then

  Alt 25. Okt 2008, 15:55
ja richtig
und wann bitte greif ich auf die 8. zu???
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 11: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