Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi CAD-Oberfläche (https://www.delphipraxis.net/70245-cad-oberflaeche.html)

edosoft 27. Mai 2006 16:15


CAD-Oberfläche
 
Hallo,

Ich hab ein CAD-Programm gebastelt und mach mir zurzeit noch gedanken wegen der Darstllung, sprich dem zeichnen.
Bisher habe ich ein TImage auf dem ich am ende zeichne. dann habe ich 2 puffer B1 und B2 (TBitmap) in die die beiden objekte die später gezeichnet werden sollen gepuffert sind. jetzt habe ich ein weiterer puffer B (TBitmap) in den ich alles reinmale, sprich linien und die objekte B1 und B2. dann wird B ber BitBlt in Image1.Canvas reinübernommen.
Soweit so gut.
Jetzt sollen aber die beiden B1 und B2 transparent auf B gemalt werden, d.h. die objekte eigentlich sind grün und des durchsichtbare ist clFuchsia-farbig. Wenn ich aber die zeichne mit B.Canvas.Draw(0,0,B1) dann dauert des ewig und wenn ich halt so 50 oder 100 objekte hab die gezeichnet werden sollen benötigt des programm ziemlich viel cpu last, grad beim scrollen da ich ja da alle objekte neu zeichnen muss.
Gibts ne möglichkeit mit BitBlt oder ähnlich durchsichtig zu zeichnen? oder soll ich des ganz anders machen?

Thanks in advance!
-dominik

mkinzler 27. Mai 2006 17:52

Re: CAD-Oberfläche
 
Hallo Dominik, vielliecht ist das für die hilfreich

arbu man 27. Mai 2006 18:27

Re: CAD-Oberfläche
 
Graphics32 ist schnell und beherscht alphablending.

mfg, abu

edosoft 28. Mai 2006 00:05

Re: CAD-Oberfläche
 
@arbu man:
Das sieht sehr vielversprechend aus. Allerdings komm ich nicht weiter, wie kann ich jetzt ein TBitmap32 transparent kopieren?
(kopieren tu ich ja mit TBitmap32.draw() anstatt TBitmap32.canvas.draw() oder?)

mfg,
dominik


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