Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zeichnen mit Hintergrund (https://www.delphipraxis.net/97380-zeichnen-mit-hintergrund.html)

axelf98 9. Aug 2007 14:24


Zeichnen mit Hintergrund
 
Hallo,
ich versuche ein Zeichenprogramm zu realisieren, das eine Hintergrundgrafik hat. Ich hatte an 2 überlagerte TImages gedacht, von denen das oberste transparent ist. Leider flackert das bei Canvaszugriff fürchterlich und macht auch den Hintergrund weiß.

Meine Idee war, den Hintergrund nicht jedes mal neu laden zu müssen.

Hat jemand eine Idee wie man das realisiert?

Danke! :gruebel:

semo 9. Aug 2007 14:55

Re: Zeichnen mit Hintergrund
 
ein zeichenprogramm mit images?
ich würde eher auf einen canvas malen...

je nachdem wie umfangreich dein programm werden soll.

Pfoto 9. Aug 2007 15:07

Re: Zeichnen mit Hintergrund
 
Hallo!

gibt es für das Canvas nicht auch so was wie "DoubleBuffered:= true",
so wie bei den Forms?

Oder versuche es mit Komponenten, die das echte Stapeln von Ebenen
unterstützen, wie z.B. GR32 (kostenlos) oder ImageEn (Shareware).
Es gibt dort IMHO sogar Packs um verschiedene Zeichentechniken
(z.B. Airbrush) zu verwirklichen.


Gruß
Pfoto

SirThornberry 9. Aug 2007 15:23

Re: Zeichnen mit Hintergrund
 
Bei der Lösung mit den Images passiert folgendes:
- Du änderst das obere Bild durch Zeichnen
- Dies wird bemerkt und deshalb wird das was dahinter liegt gezeichnet, die Anzeige aktuallisiert, das was du gezeichnet hast wird transparent gezeichnet und die Anzeige aktuallisiert

Besser: Schreibe dir eine Komponente in der du den Hintergrund zeichnest, dann das was der User gezeichnet hat und dann erst die Anzeige aktuallisierst.

axelf98 9. Aug 2007 20:25

Re: Zeichnen mit Hintergrund
 
Zitat:

Zitat von SirThornberry
Besser: Schreibe dir eine Komponente in der du den Hintergrund zeichnest, dann das was der User gezeichnet hat und dann erst die Anzeige aktuallisierst.

Klar das ist auch möglich, wenn auch nicht sonderlich performant.. nunja mal schauen, hätte ja ein können, dass es einen einfachen Befehl gibt!

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 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