Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Eigenartig: Balkenanzeige des Arbeitsspeichers


Ivo@CoMRoK - So 12.02.06 19:44
Titel: Eigenartig: Balkenanzeige des Arbeitsspeichers
Hi!
Ich heb mir ein Programm geschrieben mit dem ich die Verwendung des Arbeitsspeichers in einem Balken (können noch mehr werden^^) anzeige. Zum Problem:
Wenn eine andere Anwendung gestartet ist funzt das ganz gut, nur wenn ich eine zweite starte wird auf einmal angezeigt es stünde mehr freier Arbeitsspeicher zur Verfügung.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Prozent := ((Memory.dwAvailPhys*100div (Memory.dwTotalPhys*100));
Canvas.Pen.Color := rgb(255,0,0);
Canvas.Brush.Color := rgb(255,0,0);
Canvas.Rectangle(112,119,112-Prozent,131);
Canvas.Pen.Color := rgb(0,255,0);
Canvas.Brush.Color := rgb(0,255,0);
Canvas.Rectangle(112-Prozent,119,212,131);


Das ist mein Code. Die rechnung müsste doch eigentlich stimmen oder?


AXMD - So 12.02.06 19:53

:shock: Was rechnest du denn da?

1.) Es gibt Konstanten wie clRed
2.) Es gibt eine with Canvas do-Anweisung
3.) Du hast nicht einen Kommentar in deinem Code und erwartest, dass ein Außenstehender dir sagen kann, ob die Zeile Canvas.Rectangle(112-Prozent,119,212,131); vielleicht richtig ist?
4.) Prozent := ((Memory.dwAvailPhys*100div (Memory.dwTotalPhys*100)); Das hier ist definitiv falsch

AXMD


Ivo@CoMRoK - So 12.02.06 20:03

Ähm ja ist mir auch gra :oops: d aufgefallen
Ach und mir is auch mehr aufgefallen:

Hier überarbeitet:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Prozent := ((Memory.dwAvailPhys*100div (Memory.dwTotalPhys));//Prozent freier RAM vom gesamten
Canvas.Pen.Color := rgb(255,0,0);
Canvas.Brush.Color := rgb(255,0,0);
Canvas.Rectangle(112,119,112+Prozent,131);//Rechteck für den freien
Canvas.Pen.Color := rgb(0,255,0);
Canvas.Brush.Color := rgb(0,255,0);
y := 100 - Prozent;
Canvas.Rectangle(212-y,119,212,131);//Rechteck für den gebrauchten

Okay ihr braucht ez erstma ich antworten ich muss das nochma überlegen.
Sry

Und: with Canvas do: ich hab des ganze in nem timer


AXMD - So 12.02.06 20:08

user profile iconIvo@CoMRoK hat folgendes geschrieben:
Und: with Canvas do: ich hab des ganze in nem timer


Das ist doch nicht relevant...


Delphi-Quelltext
1:
2:
3:
4:
with Form1.Canvas do begin
  Font.Color := foo;
  Pen.Color := bar;
  end;


AXMD


Blackheart666 - So 12.02.06 21:02

Mir ist auch etwas aufgefallen - Vieleicht mal etwas am Deutsch arbeiten, dann versteht man auch dein Problem leichter und mehr Leute können Dir helfen.


Ivo@CoMRoK - So 12.03.06 02:26

Äh okay Mach ich.
(Bin ICQ gewöhnt, schrecklich wie des des Sprachniveau runterzieht)


GTA-Place - Di 14.03.06 20:04


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  Prozent := (Memory.dwAvailPhys * 100div (Memory.dwTotalPhys);
  Y       := 100 - Prozent;

  with Canvas do
  begin
    Pen.Color   := clRed;
    Brush.Color := clRed;
    Rectangle(112119112 + Prozent, 131);

    Pen.Color   := clGreen;
    Brush.Color := clGreen;
    Rectangle(212 - Y, 119212131);
  end;

So sieht's dann korrekt formatiert und optimiert aus.