Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Image flackert (https://www.delphipraxis.net/45615-image-flackert.html)

BrunoT 9. Mai 2005 13:00


Image flackert
 
Hallo DP'ler,

ich habe ein Image, auf dem ich mit TextOut und LineTo zeichne. Durch Anklicken wird der aktuelle Textinhalt weiss überschrieben
und nach Editieren im Editfeld neu gezeichnet. Dabei flackert das Bild nervig.

Nun die Frage: wie verhindere ich das Flackern? ich habe schon gesucht, aber nichts Genaues gefunden.

mfg

BrunoT

Matze 9. Mai 2005 13:08

Re: Image flackert
 
Standardantwort: Delphi-Referenz durchsuchenDoubleBuffered könnte helfen. ;)

Khabarakh 9. Mai 2005 13:26

Re: Image flackert
 
Und dazu noch ein Hier im Forum suchenOffscreenbitmap (Delphi-Referenz durchsuchenTBitmap) :wink: .

Luckie 9. Mai 2005 13:40

Re: Image flackert
 
Und kein TImage zum Zeichnen benutzen, sondern die Paintbox, die dafür gedacht ist.

BrunoT 9. Mai 2005 13:47

Re: Image flackert
 
Hallo,

Danke für die schnelle Hilfe, ich schau mir das mit dem OffScreenBitmap an.

Das andere

Delphi-Quellcode:
DoubleBuffered := True;
hat nicht viel gebracht.

Allerdings ist das ganze mit viel Aufwand verbunden, ich habe bisher auf das Canvas gezeichnet (TImage und Drucker).

Die PaintBox ist eine Alternative, ich habe aber gelesen, dass diese sich nicht refresht.

Da muss ich noch etwas lesen.


mfg

BrunoT

Luckie 9. Mai 2005 14:00

Re: Image flackert
 
Zitat:

Zitat von BrunoT
Die PaintBox ist eine Alternative, ich habe aber gelesen, dass diese sich nicht refresht.

Ich weiß jetzt nicht, was du damit meinst, aber normalerweise zeichnet man in ein Bitmap im Speicher und kopiert es bei Bedarf (OnPaint zum Beispiel) auf den Canvas der Paintbox mit BitBlt.

BrunoT 9. Mai 2005 14:19

Re: Image flackert
 
Hallo Luckie,

Danke für die Hinweise, ich habe nach OffScreenBitmap in der DP geschaut und bin recht fündig geworden.
Ich denk mal so:

1. Anstatt von TImage verwende ich nun eine Paintbox.
2. Auf das OffScreenBitmap.Canvas zeichne ich
3. Kopiere das OffScreenBitmap in die PaintBox.(BitBlt)
4. Änderungen im OffScreenBitmap und anschließend BitBlt
5. In das OnPaint - Ereignis der PaintBox muss ich ebenfalls BitBlt des geänderten OffScreenBitmap einfügen

isn´t it?

BrunoT

Muetze1 9. Mai 2005 17:30

Re: Image flackert
 
Moin!

3. und 4. kannste weglassen, da dies von 5. schon erledigt wird. Und wenn du wirklich mal was änderst, dann einfach PaintBox1.Update aufrufen. That's it.

MfG
Muetze1

BrunoT 10. Mai 2005 14:23

Re: Image flackert
 
:bouncing4: Hallo Matze, Muetze1, Khabarakh, Luckie und alle die mitgelesen haben, :firejump: :spin2: :bounce1:

es geeeht!!

es war nach den Hinweisen nicht mehr schwierig und die Änderungen hielten sich in Grenzen.

Ich danke noch mal recht schön :cheers:


mfg

BrunoT


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz