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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.