![]() |
Canvas-Flackern verhindern
Hallo DP!
Ich habe mir einen Editor Programmiert, mit dem ich oder der Endbenutzer die Eingabeformulare eines Programmes selbst gestalten kann. Dazu gehört: Komponentenverbindungen verschieben (Label+Edit usw.), ein kleiner OI sowie das ausrichten an einem Raster, welcher im Faktor veränderbar ist. Dieser Raster ist auch mein Problem. Ich zeichnen ihn auf ein Canvas einer TImage Komponente. Auf dieser Komponente(Image) werden auch die Komponenten(Edits usw.) verschoben. Problem: Wird eine Komponente über das Image gezogen, zeichnet es sich bei jeder Mausbewegung neu und das flackert ziemlich. Gibt es dafür eine lösung? Ich habe bereits versucht, anstatt einer Image-Komponente eine PaintBox zu verwenden, dort flackert es allerdings auch. (Ich rufe dort die Funtion die das Raster zeichnet bei jeder bewegung neu auf). Gruss Fellmer |
Re: Canvas-Flackern verhindern
Hallo Fellmer Lloyd :hi:
versuch's doch mal mit einem TBitmap: Bitmap in Prozedur erstellen Image in das Bitmap kopieren Das Raster auf das Bitmap zeichnen Das Bitmap in das Image kopieren |
Re: Canvas-Flackern verhindern
Schalte die Option DoubleBuffered des Canvas ein.
Falls es danach immer noch flackert, zeichne die Ausgabe in ein Bitmap und nicht direkt auf den Canvas. Anschließend weist du es der Image-Componente mit
Delphi-Quellcode:
zu.
Image1.Graphic.Bitmap.Assign(Bitmap1);
|
Re: Canvas-Flackern verhindern
Zitat:
Also ins Form1.OnCreate:
Delphi-Quellcode:
Klappt bei mir ;)
DoubleBuffered := true;
Zitat:
|
Re: Canvas-Flackern verhindern
Danke, hat mit Bitmap.Assign funktioniert.
Jetzt funktioniert mein "kleiner" Editor wunderbar. :bounce1: :bounce2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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