![]() |
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:
mfg,
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; dominik weber |
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.
|
Re: BitBlt und TImage auf verschiedenen Systemen unterschied
was würdest du mir anstelle eines timage empfehlen?
|
Re: BitBlt und TImage auf verschiedenen Systemen unterschied
TPaintbox
|
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 12:54 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-2025 by Thomas Breitkreuz