Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi BitBlt und TImage auf verschiedenen Systemen unterschiedlich (https://www.delphipraxis.net/81029-bitblt-und-timage-auf-verschiedenen-systemen-unterschiedlich.html)

edosoft 19. Nov 2006 11:57


BitBlt und TImage auf verschiedenen Systemen unterschiedlich
 
Hallo,

Ich hab einen P4 mit HT und 3,4Ghz im Laptop mit WinXPSP2 drauf.
Jetzt hab ich mir ein Programm gebastelt mit CAD-Oberfläche. Jetzt soll so ein Objekt (kreis oder Strich oder so) ja angezeigt werden wenn ich mit der Maus drüberfahre. also hab ich bei meinem TImage was als zeichenfläche fungiert beim onmousemove event eine routine die zuerst ein bckground-tbitmap in ein zweites tbitmap kopiert, per bitblt, und da wird dann das objekt reingezeichnet. wieder mit bitblt wird das 2. tbitmap auf mein TImage kopiert.

wenn ich jetzt am Laptop mit der Maus so drüberfahre geht die Prozessorlast auf 40-50% hoch. an nem anderen rechner mit nem athlon xp 2000+ oder sowas wieder mit windows xp drauf verursacht das ganze aber nur 8-10% cpu last. und selbst an nem driten rechner mit nem P2 mit 500mhz oder so und win98 läuft das programm noch flüssig. warum?

Delphi-Quellcode:
  BitBlt(tB.Canvas.Handle, 0, 0, cBackBmp.Width, cBackBmp.Height, cBackBmp.Canvas.Handle, 0, 0, SRCCOPY);
  [..]
  BitBlt(Image1.Canvas.Handle, 0, 0, Image1.Width, Image1.Height, tB.Canvas.Handle, 0, 0, SRCCOPY);
  Image1.Repaint;
mfg,
dominik weber

SirThornberry 19. Nov 2006 12:16

Re: BitBlt und TImage auf verschiedenen Systemen unterschied
 
Ein TImage ist vom Aufbhau her einfach nicht dafür geeignet zusätzliche Zeischenoperationen aus zu führen. Ein TImage dient eigentlich nur dazu ein Bild anzuzeigen was sich möglichst nicht verändert. Ansonsten ist es auf Grund der schlechten Performance dafür nicht geeignet.

edosoft 19. Nov 2006 12:17

Re: BitBlt und TImage auf verschiedenen Systemen unterschied
 
was würdest du mir anstelle eines timage empfehlen?

Gandalfus 19. Nov 2006 14:53

Re: BitBlt und TImage auf verschiedenen Systemen unterschied
 
TPaintbox

SirThornberry 19. Nov 2006 14:59

Re: BitBlt und TImage auf verschiedenen Systemen unterschied
 
ich würd gleich eine eigene Komponente empfehlen zu schreiben die genau das macht. Klar kann man auch OnPaint der Paintbox verwenden. Aber wenn man richtig Objectorientiert arbeitet ergeben sich da meist noch unterklassen und weitere Eigenschaften die auch irgendwo untergebracht werden wollen.


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