AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi procedure abbrechen bzw. warum läuft sie weiter? ^^
Thema durchsuchen
Ansicht
Themen-Optionen

procedure abbrechen bzw. warum läuft sie weiter? ^^

Ein Thema von Olga · begonnen am 30. Apr 2010 · letzter Beitrag vom 1. Mai 2010
 
Olga

Registriert seit: 1. Apr 2010
7 Beiträge
 
#1

procedure abbrechen bzw. warum läuft sie weiter? ^^

  Alt 30. Apr 2010, 18:12
Mal wieder ein Hallöchen von mir :)

Wie ihr euch sicherlich denkt, hab ich ein Problem :)
Und zwar folgendes:

Ich starte meinen Lösungsvorgang über einen Button, der dann verschiedene Aktionen duchführt und eine procedure triggert.
In dieser ist eine while Schleife, welche jedoch immer wieder aufgerufen wird nachdem mein Programm eigentlich fertig sein sollte.
Ich hab es schon mit exit und application.ProcessMessages versucht, jedoch keinen Erfolg gehabt. Es scheint fast so als würde er über den Punkt rüber zur letzten Schleife gehen die er findet.

Ich versuche mal wichtigen Quellcode zu posten, wenn was fehlen sollte müsstet ihr mir bescheid sagen.

Delphi-Quellcode:
procedure TForm1.BackTracking(var Nr,INr :integer);
begin

While Nr <> 82 do
begin
ZahlZuKoordinaten(Nr);
b := xKoo-1;
c := yKoo;
if Nr >= 82 then
break;
if INr = 9 then
begin
  Nr := Nr-1;
  INr := Positionsarray[Nr-1,0]+1;
  sudokuarray[b,c] := 0;
  Backtracking(Nr,INr);
end;
if Moeglichkeitenarray [Nr-1,INr] = 0 then
begin
  if INr = 0 then
  begin
    if richtung = 0 then
    begin
      Nr := Nr-1;
      INr := positionsarray[Nr-1,0]+1;
      richtung := 0;
      BackTracking(Nr,INr)
    end
    else
    begin
      Nr := Nr+1;
      INr := 0;
      richtung := 1;
      Backtracking(Nr,INr);
    end;
  end;
  begin
    if Moeglichkeitenarray[Nr-1,0] <> 0 then
    sudokuarray[b,c] := 0;
    Nr := Nr-1;
    INr := (Positionsarray[Nr-1,0])+1;
    Richtung := 0;
    Backtracking(Nr,INr);
  end;
end;
  If Moeglichkeitenarray [Nr-1,INr] <> 0 then
    begin
      sudokuarray[b,c] := Moeglichkeitenarray[Nr-1,INr];
      d := Moeglichkeitenarray[Nr-1,INr];
      
      Reihe(b,c);
      if e = 1 then
      Spalte(b,c);
      if e = 1 then
      Kasten(b,c);
      if e = 1 then
      begin
        Positionsarray[Nr-1,0] := INr;
        Nr := Nr+1;
        INr := 0;
        Richtung := 1;
        BackTracking(Nr,INr);
      end;
    if e <> 1 then
    begin
      if INr <> 8 then
      begin
        INr := INr + 1;
        BackTracking(Nr,INr);
      end
      else
      begin
        Richtung := 0;
        Nr := Nr-1;
        INr := (Positionsarray[Nr-1,0])+1;
        sudokuarray[b,c] := 0;
        Backtracking(Nr,INr);
      end;
    end;
    end;
end;
Application.ProcessMessages;
Uebertragen();
end;
end.
So far...^^
  Mit Zitat antworten Zitat
 


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 20:48 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-2025 by Thomas Breitkreuz