Gut, ich versuche mal meine Gehirngänge darzulegen:
label1 hat den start 1.
also wenn die funktion das erst mal durchlaufen wird, dann sie gleich auf false gesetz:
Delphi-Quellcode:
[b]if label_zahl > 1 then
begin[/b]
zahl:=1;
while zahl < label_zahl do
begin
if reihe= a[zahl] then //es wird geprüft ob die reihe schonmal gespeichert wurde
begin
result:=true; //Bed. erfüllt, + verlassen der schleife
exit;
end
else zahl:=zahl+1; // Bed. nicht erfüllt: zahl wird erhöht um die folgenden arrays zu prüfen
end;
result:=false; //falls keine zahlen übereinstimmen-> bed. stimmen nicht überein
[b]end
else result:=false;[/b]
end;
und somit zuerst einmal das array deklariert und den Wert von dem Label übergeben:
Delphi-Quellcode:
if posproof(strtoint(label1.Caption),stringgrid1.Row) = false then
begin
setlength(a,2);
zahl:=strtoint(label1.Caption); //zahl wird jedes mal definiert
a[zahl]:=stringgrid1.Row;
label1.Caption:=inttostr(zahl+1); //zahl wird erhöht
end;
der Wert der variable 'zahl' wird immer kurz vorm ausführen eines prozesses definiert, so sollte es also keine Konflikte geben.
Plautzer