Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

Anwendung ruckelt beim Vergrößern/Verkleinern

  Alt 25. Jun 2016, 19:11
Hallo zusammen,

mit folgendem Quellcode zeichne ich diverse Bilder in eine PaintBox:

Delphi-Quellcode:
procedure TfrmCardInfo.pbCardsPaint(Sender: TObject);
var
  i, col, row: Integer;
  BasePath, s: string;
  img: TJPEGImage;
  Start: Cardinal;
begin
  if (FBFCardInfoList.Count > 0) then begin
    img := TJPEGImage.Create;
    try
      col := 1;
      row := 0;
      i := 0;
      Start := GetTickCount;
      repeat
        FBFCardInfoList[i].Picture.Position := 0;
        img.LoadFromStream(FBFCardInfoList[i].Picture);
        pbCards.Canvas.Draw((col - 1) * img.Width + 5, row * img.Height + 10, img);

        if ((col mod FMaxCols) = 0) then begin
          col := 1;
          Inc(row);
        end else
          Inc(col);
        Inc(i);
      until (i >= FBFCardInfoList.Count);
      lblOrbs.Caption := IntToStr((GetTickCount - Start));
    finally
      img.Free;
    end;
  end;
end;
Die Bilder wurden zuvor in einem Thread von der Festplatte geladen und werden nun in einem Klassenobjekt in einer Objectlist aufbewahrt. Ich lade beim Zeichnen der Bilder auch immer nur noch aus einem Stream in ein TJPEGImage. Jedoch fängt die Anwendung an zu ruckeln, sobald ich das Fenster vergrößere und verkleinere. Die PaintBox in die gezeichnet wird, wird beim ändern der Formgröße immer durch die Anchor Property mit angepasst. Nehme ich die Zeile pbCards.Canvas.Draw((col - 1) * img.Width + 5, row * img.Height + 10, img); raus, dann läuft es flüssig(er). Getestet unter Windows 10 und Windows 7. Woran kann das liegen? Ist die Canvas.Draw Methode wirklich so langsam?

Wie kann ich das beschleunigen, da ich diese Ruckeleffekte nicht haben möchte?

PS: Das lblOrbs habe ich dazu verwendet, um die Zeit auszugeben wie lange gezeichnet wird. Das Ergebnis liegt immer irgendwo bei 300 - 370ms.

Geändert von Aviator (25. Jun 2016 um 20:34 Uhr)
  Mit Zitat antworten Zitat