Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Inkompatible Typen: Cardinal und String (https://www.delphipraxis.net/33334-inkompatible-typen-cardinal-und-string.html)

quakergod 5. Nov 2004 07:41


Inkompatible Typen: Cardinal und String
 
hi, ich bin echt geschafft, warum geht das nicht!? :

Delphi-Quellcode:
var
  bildpfad, bildname, bildendung: String;
  bildsize: Integer;


Memo.Lines:=ExplorerDrop1.FileNames;
bildpfad:=Memo.Lines[0];
bildname:=ExtractFileName(bildpfad);
bildendung:=ExtractFileExt(bildname);
bildsize:=GetFileSize(bildpfad);
bei GetFileSize hängts:
Zitat:

[Fehler] Inkompatible Typen: 'Cardinal' und 'String'
hoffe ihr könnt mir helfen! :wall:

Steve 5. Nov 2004 07:57

Re: Inkompatible Typen: Cardinal und String
 
Win SDK sagt zum Thema GetFileSize folgendes:

The GetFileSize function retrieves the size, in bytes, of the specified file.
Code:
DWORD GetFileSize(

    HANDLE hFile,   // handle of file to get size of
    LPDWORD lpFileSizeHigh    // address of high-order word for file size
   );

Du übergibst den Dateinamen, verlangt ist aber das Handle zur Datei :)

Gruß
Stephan :dance:

Luckie 5. Nov 2004 07:57

Re: Inkompatible Typen: Cardinal und String
 
Die Fehlermeldung sagt doch eigentlich schon alles. Da muss wohl eine Konvertiering von einen Datentyp in einen anderen vorgenommen werden, damit der Wert zugewiesen werden kann.

Allerdings kann es nicht in der Zeile klemmen:
Delphi-Quellcode:
bildsize:=GetFileSize(bildpfad);
Integer und Cardinal sind zuweisungskompatibel.

Sollte es doch dort klemmen, könnte ich mir nur vorstellen, dass bildsize (was ist denn das eigentlich für ein Sprach-Mischmasch in der Benennung der Varaiblen? :gruebel:) vorher als String deklariert war und nach dem Ändern die zugehörige kompilierte Unit (dcu-Datei) nicht neu kompiliert wurde. Sollte das der fall sein, lösch sie mal oder erzwing durch "build all" eine neu Kompilierung der Unit.

OK, vergess das hier. Steve hat recht. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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 by Thomas Breitkreuz