![]() |
Programm frisst speicher wenn nicht on top..
Liste der Anhänge anzeigen (Anzahl: 1)
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 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