Witam! Mam taką oto procedurę do wyszukiwania drogi w grafie (na razie jej zarys) ale przy sprawdzaniu za pomocą debuggera jej działania zobaczyłem, że dziadostwo nie chce się samo wywołać. Opisane jest to w kodzie. Dodam tylko, że używam Delphi 2005 i pierwszy raz spotykam się z czymś takim. Ktoś może wyjaśnić dlaczego tak się dzieje? Przy trybie pracy krokowej po prostu program przechodzi sobie przez to wywołanie i nic z tego nie robi.
Deklaracja typów:
type
TFindRoute = record
WhereFromIndex : Integer;
Distance : Integer;
end;
type
TNode = record
X : Integer;
Y : Integer;
Connections : array of Integer;
FindRoute : TFindRoute;
end;
Kod:
procedure TForm1.FindPath(StartPointIndex : Integer ; Generation : Integer);
var
i : Integer;
a : Integer;
Index : Integer;
begin
if NodeTable[StartPointIndex].FindRoute.WhereFromIndex = -1 then
begin
for Index in NodeTable[StartPointIndex].Connections do
begin
NodeTable[Index].FindRoute.WhereFromIndex:=StartPointIndex;
FindPath(Index,0); // zupełnie ignoruje
end;
end
end;