02. august 2002 - 18:18Der 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?
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;
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;
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:
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'
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?
Synes godt om
Ny brugerNybegynder
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.