Thema: Delphi Int64 und Delphi 3

Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#11

Re: Int64 und Delphi 3

  Alt 2. Dez 2005, 18:48
Hallo,
Zitat von Ati:
@Chegga
Das funktioniert nicht mit Festplatten >2GB
das kann auch nicht, in Delphi 3 gibt DiskSize einen Integer zurück:
function DiskSize(Drive: Byte): Integer; und GetDiskFreeSpaceEx wird mit Int64 unter Delphi 3 so auch nicht funktionieren,
da es so deklariert ist:
Delphi-Quellcode:
function GetDiskFreeSpaceEx(lpDirectoryName: PChar;
  var lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes: Integer;
  lpTotalNumberOfFreeBytes: PInteger): BOOL; stdcall;
@Ati:
Hast Du das Programm in der Zip (http://www.efg2.com/Lab/Library/Delp...paceKludge.ZIP) aus meinem Beitrag ausprobiert?
Es liefert richtige Werte, zumindest bei XP.

Das tut der folgende Code, den ich so ähnlich unter XP und NT nutze, auch:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var SectorsPerCluster,
    BytesPerSector,
    NumberOfFreeClusters,
    TotalNumberOfClusters : DWORD;
    Cluster, Gesamt, Frei: double;
begin
  GetDiskFreeSpace(PChar('C:\'), SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters);
  Cluster := SectorsPerCluster * BytesPerSector;
  Gesamt := Cluster * TotalNumberOfClusters;
  Frei := Cluster * NumberOfFreeClusters;
  showmessage('Freier Speicherplatz: '+FormatFloat('#,##0',Frei));
  showmessage('Gesamte Speichergröße: '+FormatFloat('#,##0',Gesamt));
end;
Das sagt Microsoft dazu:
GetDiskFreeSpace
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat