Announcement

Collapse
No announcement yet.

Flackern bei selbstgeschriebener Thumbnail-Kompo...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Flackern bei selbstgeschriebener Thumbnail-Kompo...

    hallo

    ich hab folgendes problem:
    ich habe eine komponente geschrieben, welche kleine thumbnails anzeigen kann, und bei doppelklick eine grosse vorschau.
    nun, wenn ich scrolle oder die kompo verziehe dann flackert sie enorm!!!
    ist es möglich, das zu unterbinden?

    gruss
    mirror

  • #2
    Hi

    Nur durch ändern der zeichenroutine. generell sagt man zeichene sowenig wie möglich Überflüssiges. Bildüberschneidungen bzw. Bereiche die mehrmals per zeichenvorgang gezeichnet werden SIND überflüssig.

    Im beispiel Deiner Thumbnails zeichnest Du zuerst (ONHE vorher mit Fillrect() den Canvas zu löschen) alle Bilder. Nach jedem Bild wird desen Bereich mit ExcludeClipRgn() aus dem Zeichenbereich des Canvase's = DC entfernt. Erst zum Schluss wird nun FillRect() aufgerufen. Da die Bilder und deren Bereiche im Canvas aus der Region entfernt wurden, werden diese nicht überzeichnet.

    <pre>

    begin
    R := Rect(); // Bildbereich festlegen
    Canvas.CopyRect(R, ...); // zeichne Bild nach R
    ExcludeClipRect(Canvas.Handle, R.Left, R.Top, R.Right, R.Bottom);
    R := Rect(); // nächstes Bild
    Canvas.CopyRect(R, ...);
    ExcludeClipRect(....);

    Canvas.FillRect(ClientRect); // abschließend restliche Bereiche zeichnen
    end;

    </pre>

    Gruß Hage

    Comment

    Working...
    X