Einzelnen Beitrag anzeigen

bailey

Registriert seit: 9. Mär 2006
19 Beiträge
 
#1

Gleiche Functionen - verschiedene Werte

  Alt 20. Jul 2006, 17:36
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>
  Mit Zitat antworten Zitat