[ inherited @ 30.05.2006. 18:26 ] @
Kako da prikazem velicinu hdd ( recimo 40GB ) u TLabel komponenti?
Treba mi prvo kod da izracunam, pa potom da predstavim?

Hvala unapred...
[ IvanBeograd @ 30.05.2006. 18:56 ] @
Pogledaj ranije teme,bilo price o tome!Pozzz
[ savkic @ 30.05.2006. 18:57 ] @
> Kako da prikazem velicinu hdd ( recimo 40GB ) u TLabel komponenti?
> Treba mi prvo kod da izracunam, pa potom da predstavim?

Ako ti treba veličina particije onda možeš koristiti Delphi funkcije DiskSize i DiskFree, imaš opis i primere u helpu.
Ako ti treba fizička veličina diska onda moraš koristiti DeviceIoControl i IOCTL_DISK_GET_LENGTH_INFO ...
[ inherited @ 31.05.2006. 01:45 ] @
Pregledao sam ranije teme, bilo je reci, ali nisam naisao na izracunavanje velicine hdd-a?
Citat:
savkic
Ako ti treba veličina particije onda možeš koristiti Delphi funkcije DiskSize i DiskFree, imaš opis i primere u helpu.
Ako ti treba fizička veličina diska onda moraš koristiti DeviceIoControl i IOCTL_DISK_GET_LENGTH_INFO ...

Pokusao sam ovo, ali nisam u help-u nasao kako da predstavim velicinu hdd-a. Pa, ako vam nije tesko da postujete funkciju ili proceduru koja bi to resila..

Hvala unapred..
[ savkic @ 31.05.2006. 07:30 ] @
> Pokusao sam ovo, ali nisam u help-u nasao kako da predstavim velicinu hdd-a. Pa, ako vam nije tesko da postujete funkciju ili proceduru koja bi to resila..

Trebalo bi u helpu da to bude, evo primera upravo iz helpa:

var
S: string;
AmtFree: Int64;
Total: Int64;
begin
AmtFree := DiskFree(0);
Total := DiskSize(0);
S := IntToStr(AmtFree div Total) + 'percent of the space on drive 0 is free: ' (AmtFree div 1024) + ' Kbytes free. ';
Canvas.TextOut(10, 10, S);
end;
[ inherited @ 31.05.2006. 14:32 ] @
Citat:
savkic
var
S: string;
AmtFree: Int64;
Total: Int64;
begin
AmtFree := DiskFree(0);
Total := DiskSize(0);
S := IntToStr(AmtFree div Total) + 'percent of the space on drive 0 is free: ' (AmtFree div 1024) + ' Kbytes free. ';
Canvas.TextOut(10, 10, S);
end;


U help-u sam i ja naisao na ovaj primer, ali, on mi prikazuje velicinu particije, recimo C ili D, kao i slobodnog prostora. Ali, izgleda da vi niste mene dobro razumeli, meni treba opcija ( kod ) da prikazem ukupnu velicinu HDD-a. Znaci, ne particije, nego HDD, ako je on velicine 40GB da to i u TLabel ispisem?!
[ savkic @ 31.05.2006. 19:15 ] @
> U help-u sam i ja naisao na ovaj primer, ali, on mi prikazuje velicinu particije, recimo C ili D, kao i slobodnog prostora. Ali, izgleda da vi
> niste mene dobro razumeli, meni treba opcija ( kod ) da prikazem ukupnu velicinu HDD-a. Znaci, ne particije, nego HDD,
> ako je on velicine 40GB da to i u TLabel ispisem?!


Možeš sabrati veličine svih particija i tako dobiti veličinu diska ili možeš koristiti neku od ovih funkcija:

Code:


uses
  JwaWinIoctl; // Potraži na netu (autor je Marcel van Brakel, možda ima i u jedi biblioteci)

function GetDiskSize: Int64;
var
  Info: GET_LENGTH_INFORMATION;
  hDisk: THandle;
  Temp: Cardinal;
begin
  Result := 0;

  hDisk := CreateFile('\\.\PhysicalDrive0', 0, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
  if hDisk <> INVALID_HANDLE_VALUE then
  begin
    if DeviceIoControl(hDisk, IOCTL_DISK_GET_LENGTH_INFO, nil, 0, @Info, sizeof(Info), Temp, nil) then
      Result := Info.Length.QuadPart;

     CloseHandle(hDisk);
  end;
end;

function GetDiskSize2: Int64;
var
  hDisk: THandle;
  Info: DISK_GEOMETRY;
  Temp: Cardinal;
begin
  Result := 0;

  hDisk := CreateFile('\\.\PhysicalDrive0', 0, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
  if hDisk <> INVALID_HANDLE_VALUE then
  begin
    if DeviceIoControl(hDisk, IOCTL_DISK_GET_DRIVE_GEOMETRY, nil, 0, @Info, sizeof(Info), Temp, nil) then
      Result := Info.Cylinders.QuadPart * Info.TracksPerCylinder * Info.SectorsPerTrack * Info.BytesPerSector;

    CloseHandle(hDisk);
  end;
end;

[ inherited @ 01.06.2006. 11:24 ] @
:( jel moze neko da postuje JwaWinIoctl.pas (JwaWinIoctl.dcu) ili jedi bibilioteku, ako ne,
moze li bar link ka njima za download.

Hvala unapred.
[ savkic @ 01.06.2006. 12:48 ] @
www.delphi-jedi.org pa API Library ili ftp://delphi-jedi.org/api/win32api.zip.
[ inherited @ 01.06.2006. 14:30 ] @
Hvala, savkic-u, kad skinem i malo prostudiram javicu sta sam skontao...
Pozdrav...
[ inherited @ 01.06.2006. 14:48 ] @
Da, to mi je trebalo... Hvala jos jednom...