![]() |
Division
Kann mir einer sagen was ich hier bei sowas einfachem falsch mache?
Delphi-Quellcode:
Ich bekomme beim Compelieren eine Fehlermeldung:
procedure TMainform.Button1Click(Sender: TObject);
var s, sc : Int64; begin //Button1.Visible := false; //InitMetaEx; sc := 1024; s := DiskFree(0); s := (s / sc); // hier kommt die Fehlermeldung Label16.Caption := Format('%d', [s]); end; Incompatible types: Int64 and Extend. Ich will eigentlich nur die große bytezahl als Megabytezahl bzw. Gb anzeigen lassen. |
Re: Division
Der Operator / ist für Fließkommazahlen. Für ganze Zahlen musst Du div verwenden.
|
Re: Division
Die Meldung sagt doch schon alles aus.
Aus der Division kommt (logischerweise) eine Gleitkommazahl raus (Extended). Du willst diese Zahl, die Nachkommastellen speichern kann, aber einem Integer - also einem Ganzzahligen Wert zuweisen. Das geht nicht. Wie denn auch? Du musst also entweder die linke Seite in einen Fließkommawert umwandeln, oder aber das Ergebnis der Division erst runden. |
Re: Division
Ja Mensch wie dumm bin ich eigentlich?
Oh man stimmt. Also ich habe gestern zu lange gearbeitet. Danke :-D |
Re: Division
Das hier wäre auch möglich:
Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
var s, sc : Int64; begin //Button1.Visible := false; //InitMetaEx; sc := 1024; s := DiskFree(0); s := Round(s / sc); // Beachte das Round Label16.Caption := Format('%d', [s]); end; |
Re: Division
Oder gleich so:
Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
var s, sc : Int64; begin //Button1.Visible := false; //InitMetaEx; s := DiskFree(0); Label16.Caption := Format('%.0f', [s/1024]); end; |
Re: Division
Also mal ehrlich:
Delphi-Quellcode:
:mrgreen:
procedure TMainform.Button1Click(Sender: TObject);
begin Label16.Caption := Format('%.0f', [DiskFree(0)/1024]); end; |
Re: Division
Das wäre mein nächster Schritt gewesen :mrgreen:
|
Re: Division
Nächste Möglichkeit:
Delphi-Quellcode:
:D
procedure TMainform.Button1Click(Sender: TObject);
begin Label16.Caption := IntToStr(DiskFree(0) shr 10); end; greetz Mike |
Re: Division
Okay, hast gewonnen :angel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz