AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gleiche Functionen - verschiedene Werte

Ein Thema von bailey · begonnen am 20. Jul 2006 · letzter Beitrag vom 20. Jul 2006
Antwort Antwort
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
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Gleiche Functionen - verschiedene Werte

  Alt 20. Jul 2006, 17:40
Dadran liegt es (behaupte ich mal ganz dreist )wohl nicht.

wie und wo rufst du die denn auf? (Code?)
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
bailey

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

Re: Gleiche Functionen - verschiedene Werte

  Alt 20. Jul 2006, 17:50
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:
TempFile := TDfile(Download.Items[i]^);
if (Downloads.FGetFreeTKontakt(TempFile) <> 0)
AND (Downloads.FGetFreeStuck(TempFile) <> 999999999) then
       begin
       Downloads.PBeginDownloadFile(TempFile, Downloads.FGetFreeStuck(TempFile);
       end;
Wenn ich auch TDfile(Download.Items[i]^) anstatt TempFile benutze mach es kein Unterschied
<a href="http://userbars.org"><img src="http://img409.imageshack.us/img409/2550/russian33vf.gif" border="0"></a>
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz