![]() |
Gleiche Functionen - verschiedene Werte
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:
jetzt die Funktion wo ich den Wert nicht lesen kann - soweit ich das sehen kann zeit der Zeiger nicht auf denn richtigen Platz
TKontakt = record
Thread : TClientThread; Verbindung : TidTCPClient; UserName : string; IP : String; Port : Integer; Status : integer; Stuck : integer; ByteAnfang : integer; ByteEnde : integer; // LastByte : int64; end; Der wert TKontakt(TDfile(download.Items[i]^).From.Items[n]^).Status scheint nicht zugewiesen zu sein, ob wohl er davor zugewiesen wurde..!!!
Delphi-Quellcode:
Gleich danach kommt die Funktion wo der wert leesbar ist und wo alles super funktioniert.
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; 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.. |
Re: Gleiche Functionen - verschiedene Werte
Dadran liegt es (behaupte ich mal ganz dreist :-D )wohl nicht.
wie und wo rufst du die denn auf? (Code?) |
Re: Gleiche Functionen - verschiedene Werte
Es ist ganz komisch, ich habe die Proceduren mit plätzen getauscht, keine Reaktion, in der einen Kann ich den Wert lesen in der Anderen nicht..
Die Funktionen Werden im OnTimer aufgerufen
Delphi-Quellcode:
Wenn ich auch TDfile(Download.Items[i]^) anstatt TempFile benutze mach es kein Unterschied
TempFile := TDfile(Download.Items[i]^);
if (Downloads.FGetFreeTKontakt(TempFile) <> 0) AND (Downloads.FGetFreeStuck(TempFile) <> 999999999) then begin Downloads.PBeginDownloadFile(TempFile, Downloads.FGetFreeStuck(TempFile); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 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