Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Rückgabewert könnte undefiniert sein! (https://www.delphipraxis.net/63436-rueckgabewert-koennte-undefiniert-sein.html)

Headi 18. Feb 2006 20:34


Rückgabewert könnte undefiniert sein!
 
Hallo leute,

Hab irgendwie gerade gemerkt, dass es einen Unterschied gibt zwischen projekt erstellen und projekt Compillieren...
Auch wenn ich nicht weiss wo der ist, weiss ich das bei projekt erstellen folgender fehler kommt:

Code:
[Warnung] IdGlobalProtocols.pas(1445): W1035 Rückgabewert der Funktion 'GetGMTDateByName' könnte undefiniert sein
in folgendem Code:

Delphi-Quellcode:
function GetGMTDateByName(const AFileName : String) : TDateTime;
 {$IFDEF WINDOWS}
var LRec : TWin32FindData;
  LHandle : THandle;
   LTime : Integer;
 {$ENDIF}
 {$IFDEF LINUX}
var LRec : TStatBuf;
  LTime : Integer;
  LU : TUnixTime;
 {$ENDIF}
begin
  {$IFDEF DOTNET}
 if not System.IO.File.Exists(AFileName) then
    Result := -1
  else
    Result := System.IO.File.GetLastWriteTimeUtc(AFileName).ToOADate;
  {$ENDIF}
  {$IFDEF WINDOWS}
  LHandle := FindFirstFile(PChar(AFileName), LRec);
  if LHandle <> INVALID_HANDLE_VALUE then
  begin
    Windows.FindClose(LHandle);
    if (LRec.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
       FileTimeToDosDateTime(LRec.ftLastWriteTime, LongRec(LTime).Hi, LongRec(LTime).Lo);
       Result := FileDateToDateTime(LTime);
    end;
  end;
  {$ENDIF}
  {$IFDEF LINUX}
  if stat(PChar(AFileName), LRec) = 0 then
  begin
    LTime := LRec.st_mtime;
    gmtime_r(@LTime, LU);
    Result := EncodeDate(LU.tm_year + 1900, LU.tm_mon + 1, LU.tm_mday) +
              EncodeTime(LU.tm_hour, LU.tm_min, LU.tm_sec, 0);
  end
  else
  begin
    Result := -1;
  end;
  {$ENDIF}
end;
jetzt erstens habe ich diesen code irgendwie noch nie gesehen und zweitens ist er in der "IdClobalProtocols" was das auch immer bedeuten mag :stupid:


Naja ich weiss jetzt halt nicht wie ich den fehler weg kriege.... :cry: :cry:
Und desshalb kann ich mein projekt nicht "erstellen" auch wenn "compillieren" geht.


bitte helft mir

mfg headi

ManuMF 18. Feb 2006 20:46

Re: Rückgabewert könnte undefiniert sein!
 
Hallo,

eine Warnung ist - wie der Name schon sagt - eine Warnung und kein Fehler ;-) . D.h., sie hindert nicht die Compilierung / Erstellung. Bekommst du am Ende eine Meldung "Compiliert. Warnungen sind Vorhanden." bzw. "Projekt erstellt. Warnungen..."? Das bedeutet, es hat funktioniert, nur man könnte eben diese Warnung vermeiden. In deinem Falle halte ich das aber für unnötig, da die Warnung in einer INDY-Unit auftritt und nicht in einer eigenen Funktion.

Wenn du keine Meldung bekommst, schalte unter Umgebungsoptionen "Debugger-Fortschritt zeigen" ein.

Gruß,
ManuMF

Headi 18. Feb 2006 21:11

Re: Rückgabewert könnte undefiniert sein!
 
Achso ok klappt jetzt :thumb:
Nur wie ist das denn jetzt genau, gibt es doch keinen Unterschied zwischen:

projekt erstellen

und

grüner pfeil (F9) ??

Gibt es da verschiedene Files?

Naja also vielen dank nochmal

mfg headi

ManuMF 19. Feb 2006 16:45

Re: Rückgabewert könnte undefiniert sein!
 
[>] heißt nur, dass das Programm nach dem Erstellen gestartet wird.

Gruß,
ManuMF

Robert Marquardt 19. Feb 2006 16:51

Re: Rückgabewert könnte undefiniert sein!
 
Da du die Sourcen hast, kannst du sie auch reparieren.
Delphi-Quellcode:
  {$IFDEF WINDOWS}
  Result := -1;
  LHandle := FindFirstFile(PChar(AFileName), LRec);
  if LHandle <> INVALID_HANDLE_VALUE then
  begin
    Windows.FindClose(LHandle);
    if (LRec.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
       FileTimeToDosDateTime(LRec.ftLastWriteTime, LongRec(LTime).Hi, LongRec(LTime).Lo);
       Result := FileDateToDateTime(LTime);
    end;
  end;
  {$ENDIF}
Das ist naemlich wirklich ein Fehler in der Funktion.
Die Linux und die .net Version liefern beide -1 wenn es kein File ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 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