Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Procedur Aufruf (https://www.delphipraxis.net/72045-procedur-aufruf.html)

Murcielago82 24. Jun 2006 13:32


Procedur Aufruf
 
Moin Moin,
ich will eine Procedur aufrufen aber irgendwie habe ich immer einen Fehler weiss aber nicht warum. Komisch das ich andere Proceduren ohne Probleme genau so aufrufen kann. Weiss einer Rat??

Delphi-Quellcode:
begin
  Zähler:=0;
  starti:=0;
  startj:=0;
  for i:=0 to n-1 do
    begin
    for j:=0 to n-1 do
      begin
        EigenschaftenGrid[i,j].wert:='0';    
        StringGrid1.Cells[j,i] := '';
        EigenschaftenGrid[i,j].vorgegeben:= 0;
      end;
    end;
  generieren();
end;
hier die procedur:
Delphi-Quellcode:
procedure generieren();
VAR EZahl: integer;
geprüft:boolean;
begin
  Randomize;
  verlauf_füllen();
  Repeat
    wähle_zelle(zähler);         // starti u start j sind nun gefüllt!
    EZahl:= random(9)+1;         // EIne Zahl zwischen 1 und 9!
    geprüft:= false;
    geprüft:= check_zeile(starti,EZahl);
    if geprüft= true then
      generieren();         // evtl exit!
    geprüft:= check_spalte(startj,EZahl);
    if geprüft= true then
      generieren();
    geprüft:= check_3x3(EZahl,starti,startj);
    if geprüft= true then
      generieren();
    if geprüft= false then
      begin
      EigenschaftenGrid[starti,startj].wert:= inttostr(EZahl);
      inc(zähler);
      end;
  until Zähler = 82;
end;

mkinzler 24. Jun 2006 13:47

Re: Procedur Aufruf
 
Wie ist die Funktion erstellen definiert?

[Edit: Heißt die Funktion jetzt erstellen oder gereieren?]

inherited 24. Jun 2006 13:49

Re: Procedur Aufruf
 
selbst wenn sie 'generieren' heisst, kannst du, so wie sie definiert ist, nichts übergeben, was du aber tust

Murcielago82 24. Jun 2006 13:51

Re: Procedur Aufruf
 
Sie heisst generieren :wink:
Warum kann ich sie so nicht übergeben?

mkinzler 24. Jun 2006 13:55

Re: Procedur Aufruf
 
Zitat:

Warum kann ich sie so nicht übergeben?
Du hast die Funktion parameterlos definiert, rufst sie aber mit einem auf.

Murcielago82 24. Jun 2006 14:01

Re: Procedur Aufruf
 
aber ich rufe sie doch mit:
generieren() auf also ohne parameter.

mkinzler 24. Jun 2006 14:04

Re: Procedur Aufruf
 
Vohin aber nicht, da hast du sie mit einem TStringGrid aufgerufen.

mkinzler 24. Jun 2006 14:06

Re: Procedur Aufruf
 
Außerdem, rufst du diech mehrmals selber auf ohne abzubrechen.

Murcielago82 24. Jun 2006 14:08

Re: Procedur Aufruf
 
Ja habe alles mal versucht. Allerdings verstehe ich immer noch nicht wo da ein Semikolon fehlt.

auch wenn ich sie mit:
Delphi-Quellcode:
generieren(zähler,starti,startj);
und den procedurkopf in:
Delphi-Quellcode:
procedure generieren(zähler,starti,startj:integer);
änder bleibt immer noch der gleiche fehler. Auch wenn ich die Selbstaufrufe wegnehme in der P. immer noch die gleiche Fehlermeldung.

mkinzler 24. Jun 2006 14:20

Re: Procedur Aufruf
 
Vielleicht liegt der fehler auch hier:
Zitat:

EigenschaftenGrid[i,j].vorgegeben:= 0;
Existiert hier wirklich eine Eigenschaft .vorgegeben?

Murcielago82 24. Jun 2006 14:23

Re: Procedur Aufruf
 
Ja existiert.

inherited 24. Jun 2006 14:25

Re: Procedur Aufruf
 
Steht die procedure vllt hinter der Procedure, wo sie aufgerufen wird? Dann stellt sich Delphi nämlich dumm und meint die Procedure existiert nicht

mkinzler 24. Jun 2006 14:26

Re: Procedur Aufruf
 
Hast du schon mal den Ablauf innerhalb der Funktion im Debugger betrachtet?

Murcielago82 24. Jun 2006 14:28

Re: Procedur Aufruf
 
Nein auch das leider nicht. Wie gesagt an genau der gleichen Stelle kann ich andere Proceduren genau so aufrufen. Aber dancke schonmal für die Mühe.

Murcielago82 24. Jun 2006 14:32

Re: Procedur Aufruf
 
Zitat:

Zitat von mkinzler
Hast du schon mal den Ablauf innerhalb der Funktion im Debugger betrachtet?

Ich kann die procedur ja gar nciht erst aufrufen

mkinzler 24. Jun 2006 14:33

Re: Procedur Aufruf
 
Zitat:

Nein auch das leider nicht. Wie gesagt an genau der gleichen Stelle kann ich andere Proceduren genau so aufrufen
Das wist ja darauf hin, daß der Fehler in der Funktion zu suchen ist. deshalb würde ich sie mir mal Zeile für Zeile im Debugger ansehen.

mkinzler 24. Jun 2006 14:35

Re: Procedur Aufruf
 
Reduziere mal die Funktion solange bis sie funktioniert. innerhalb der Funktion werden ja noch andere aufgerufen.


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