Avatar billede fun22 Nybegynder
02. august 2002 - 18:18 Der er 7 kommentarer og
1 løsning

100 eller derunder

Jeg bruger denne kode til at hente hvor meget fri plads jeg har på min harddisk:

  // Hent fri plads på C:

    Space:=DiskFree(3);
If (Space < 1024) then
Labelc1.Caption:=IntToStr(Space)+' Bytes' // Under 1kb, vi udskriver i bytes
else
If (Space < (1024*1024)) then
Labelc1.Caption:=IntToStr(Space div 1024)+' KB' // Over 1kb, under 1mb, vi udskriver i kb
else
If (Space < (1024*1024*1024)) then
Labelc1.Caption:=IntToStr(Space div (1024*1024))+' MB' // Over 1mb, under 1gb, vi udskriver i mb
else
Labelc1.Caption:=Format('%f', [(Space / (1024*1024*1024))])+' GB'; // Over 1gb, vi udskriver i gb

Hvordan gør jeg sådan at hvis den kommer under 100 mb så ændre den et billede fra ok.bmp til low.bmp. Hvordan gør man det?

Mvh
fun22
Avatar billede nico26 Nybegynder
02. august 2002 - 18:26 #1
If (Space < 1024) then
begin
  Labelc1.Caption:=IntToStr(Space)+' Bytes' // Under 1kb, vi udskriver i bytes
  Image1.Picture.LoadFromFile('somepic');
end
else if (Space < (1024*1024)) then
begin
  Labelc1.Caption:=IntToStr(Space div 1024)+' KB' // Over 1kb, under 1mb, vi udskriver i kb
  Image1.Picture.LoadFromFile('somepic');
end
else if (Space < (1024*1024*1024)) then
begin
  Labelc1.Caption:=IntToStr(Space div (1024*1024))+' MB' // Over 1mb, under 1gb, vi udskriver i mb
  Image1.Picture.LoadFromFile('somepic');
else begin
  Labelc1.Caption:=Format('%f', [(Space / (1024*1024*1024))])+' GB'; // Over 1gb, vi udskriver i gb
  Image1.LoadFromFile('somepic');
end;
Avatar billede hermandsen Juniormester
02. august 2002 - 18:47 #2
Kan det her bruges? :)

function Prefix(const Size: Int64; Decimals: Byte = 2): String;
var                 
  Counter: Byte;
begin
  Counter := 0;
  while Size/Power(1024, Counter) > 1000.0 do
    Inc(Counter);

  case Counter of
    0: Result := 'byte';
    1: Result := 'KB';
    2: Result := 'MB';
    3: Result := 'GB';
    4: Result := 'TB';
    5: Result := 'PB';
    6: Result := 'EB';
    else Result := 'Error';
  end;

  Result := Format('%.'+IntToStr(Decimals)+'n %s', [Size/Power(1024, Counter), Result]);
end;
Avatar billede fun22 Nybegynder
02. august 2002 - 18:50 #3
undskyld men a' fatter ikke en brik
Avatar billede hermandsen Juniormester
02. august 2002 - 18:53 #4
Det var bare en gammel funktion jeg havde lavet en gang... Det er for at spare lidt kode på det du har lavet... ;)

Den skulle gerne give det bytes-præfix som Windows viser... :)
Avatar billede hermandsen Juniormester
02. august 2002 - 19:00 #5
Hvis du bare skal tjekke om den er under 100 MB kan du spare meget kode...

if DiskFree(3) < 100*1024*1024 then //100 MB = 100*1024*1024
  Image1.LoadFromFile('low.bmp') //Du har mindre end 100 MB diskplads
else
  Image1.LoadFromFile('high.bmp'); //Du har mere end 100 MB diskplads

Den funktion jeg gav dig kan spare dig for noget kode...

Du behøver egentlig ikke mere end til case-resultat 3, men af hensyn til store harddiske tog jeg den lige med! ;)

Du kan bruge funktionen således:

Label1.Caption := Prefix(DiskFree(3)); //Så får du 2 decimaler med dit præfix, ellers kan du bruge:

Label1.Caption := Prefix(DiskFree(3), 0); //Giver ingen decimaler
Label1.Caption := Prefix(DiskFree(3), 5); //Giver 5 decimaler
Avatar billede fun22 Nybegynder
02. august 2002 - 19:17 #6
Skal jeg ikke bruger en uses til den her:

if DiskFree(3) < 100*1024*1024 then //100 MB = 100*1024*1024
  Image1.LoadFromFile('low.bmp') //Du har mindre end 100 MB diskplads
else
  Image1.LoadFromFile('high.bmp'); //Du har mere end 100 MB diskplads?

for den kommer med en fejl:

[Error] Unit1.pas(399): Undeclared identifier: 'LoadFromFile'
[Error] Unit1.pas(401): Undeclared identifier: 'LoadFromFile'
[Fatal Error] disk.dpr(5): Could not compile used unit 'Unit1.pas'
Avatar billede nico26 Nybegynder
02. august 2002 - 19:44 #7
Du skal putte et TImage på din form
Avatar billede hermandsen Juniormester
02. august 2002 - 19:47 #8
Sorry...

if DiskFree(3) < 100*1024*1024 then //100 MB = 100*1024*1024
  Image1.Picture.LoadFromFile('low.bmp') //Du har mindre end 100 MB diskplads
else
  Image1.Picture.LoadFromFile('high.bmp'); //Du har mere end 100 MB diskplads?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

PET søger softwareingeniører til Ruslandsområdet

Capgemini Danmark A/S

Client Partner

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer