Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: brauche hilfe mit LineTo und MoveTo

  Alt 13. Apr 2013, 10:18
Du hast im Destruktor die Freigabe der Bitmaps vergessen.

Dann schreibst du die ganze Zeit VisBuff.Canvas ; das kostest jedesmal ein bisschen Zeit.
Ändere das mal so ab:
Delphi-Quellcode:
procedure TBass_Vis.Draw_SpectrumToCanvas(canvas:TCanvas; OffsetX, OffsetY : Integer);
begin
  // hier dein ganzer Code zum Zeichen...
  // statt VisBuff.Canvas.xxx nur noch canvas.xxx verwenden
  ...
end;

procedure TBass_Vis.Draw_Spectrum(HWND : THandle; OffsetX, OffsetY : Integer);
begin
  Draw_SpectrumToCanvas(VisBuff.Canvas, OffsetX, OffsetY);
  BitBlt(HWND, 0, 0, VisBuff.Width, VisBuff.Height, VisBuff.Canvas.Handle, 0, 0, srcCopy)
end;
Die Auftrennung in zwei Prozeduren macht die Sache klarer und flexibler.
Du übergibst in deinem alten Code ein Windowhandle.
Jeder der der Code liest denkt doch "wo wird das Handle denn benützt?".
Und dann wird es doch noch in der allerletzten Zeile verwendet.
Solche überlangen Prozeduren muss man zerlegen, speziell in dem Fall wenn ein Parameter erst ganz zum Schluss verwendet wird.
  Mit Zitat antworten Zitat