Tach an alle,
ich habe ein Problem, wo ich keine logische Erklärung weiter finde.
Es sind zwei fast gleiche Funktionen (Array of Array) nur ist der Wert leesbar in der Zweiten
funktion...!?
ich habe zwei Typen
Delphi-Quellcode:
TDFile = record
MD5 : String[40];
Size : int64;
FileName : String[255];
From : TList; //TKontakt
LastByte : integer; // der Letzte byte beim letzten Download.
StatusQueue : integer;
StatusCount : integer;
StatusDownlaod : string;
StatusStucke : array of string;
Den Status in diesem Typ kann ich in der einen Funktion nicht sehen.
Delphi-Quellcode:
TKontakt =
record
Thread : TClientThread;
Verbindung : TidTCPClient;
UserName :
string;
IP :
String;
Port : Integer;
Status : integer;
Stuck : integer;
ByteAnfang : integer;
ByteEnde : integer;
// LastByte : int64;
end;
jetzt die Funktion wo ich den Wert nicht lesen kann - soweit ich das sehen kann zeit der Zeiger nicht auf denn richtigen Platz
Der wert TKontakt(TDfile(download.Items[i]^).From.Items[n]^).Status scheint nicht zugewiesen zu sein, ob wohl er davor zugewiesen wurde..!!!
Delphi-Quellcode:
function TClientClass.FGetFreeTKontakt(Datei: TDfile): integer;
var
i, n, t : integer;
begin
// result := 0;
t := 0;
for i:=0 to download.Count -1 do
begin
if TDfile(download.Items[i]^).MD5 = Datei.md5 then
begin
for n:=0 to TDfile(download.Items[i]^).From.Count - 1 do
begin
if TKontakt(TDfile(download.Items[i]^).From.Items[n]^).Status = FrischUndSauber then
begin
t := t+1;
end; // if
end; // for
end; // if
end; //
result := t;
end;
Gleich danach kommt die Funktion wo der wert leesbar ist und wo alles super funktioniert.
und hier kann ich den wert TKontakt(TDfile(download.Items[i]^).From.Items[n]^).Status super lesen
Delphi-Quellcode:
function TClientClass.PBeginDownloadFile(Datei: TDFile; Stuck : integer): boolean;
var
i, n : Integer;
Iwert : integer;
Swert :
string;
Connected : boolean;
begin
result := false;
//Starten der Verbindung zum jeder IP
for i:=0
to download.Count -1
do
begin
if TDfile(download.Items[i]^).MD5 = Datei.md5
then
begin
for n:=0
to TDfile(download.Items[i]^).From.Count - 1
do
begin
if TKontakt(TDfile(download.Items[i]^).From.Items[n]^).Status = FrischUndSauber
then
begin
kann mir jemmand sagen was ich übersehen habe...!?!? bzw. wo der Fehler sitzen könte..
<a href="http://userbars.org"><img src="http://img409.imageshack.us/img409/2550/russian33vf.gif" border="0"></a>