Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Programm frisst speicher wenn nicht on top..

  Alt 26. Feb 2004, 19:45
Hab schon wieder nen Problem,

mein Programm (Musiksoftware) frisst aus irgend einem grund Speicher (Taskmanager Spalte: Speicherauslastung) allerdings nur wenn es nicht im Fordergrund ist. aller halben Sekunden zeichne ich auf die Canvas um den Fortschritsbalken des Liedes zu aktuallisieren und im gleichen Interval erhöht sich die Speicherauslastung. Wenn Mein Programm dann in den Vordergrund geholt wird, wird der Speicher wieder freigegeben. Ich vermute irgendwie das Wenn auf die Canvas nicht gezeichnet werden kann das Irgendwie "gecacht" wird und wenn dann die canvas wieder ontop ist wird das alles nachgeholt. Allerdings spricht dagegen, dass der speicherverbrauch auch zunimmt wenn mein Programm (und die Positionbar) sichtbar sind aber zum Beispiel der Taskmanager on Top ist. Hat irgend jemand ne Idee woran das liegen könnte?? Könnt auch eure unwahrscheinlichsten Theorien posten, vielleicht ist ja grad das unwahrscheinlichste die lösung

Source aus der Komponente wo ich den Fehler vermute
Delphi-Quellcode:
var LDC: HDC;
    LCount: Integer;
    LBlendFactor: Byte;
    LToPos: Integer;
    Lrect: TRect;
    LColor: Tcolor;
begin
  LDC := GetDC(handle);
  if LDC <> 0 then
  begin
    fCanvas.Handle := LDC;
    fCanvas.Brush.Color := color;
    LColor := GetBlendColor(color, fBlendColor, 0, 20);
    Lrect := fCanvas.ClipRect;
    if MaxPosition = 0 then LToPos := ClientWidth else
    LToPos := ClientWidth * Position div MaxPosition;

    lrect.Left := LToPos + 1;
    fCanvas.FillRect(LRect);
    for LCount := 0 to LToPos do
    begin
      LBlendFactor := LCount * 255 div ClientWidth;
      fCanvas.Pen.Color := GetBlendColor(LColor, fBlendColor, LBlendFactor);
      fCanvas.MoveTo(LCount, 0);
      fCanvas.LineTo(LCount, ClientHeight);
    end;
    ReleaseDC(handle, LDC);
  end;
end;
Angehängte Dateien
Dateityp: pas uposslider.pas (6,9 KB, 0x aufgerufen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat