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 Schneles Ändern von Image1.Picture (https://www.delphipraxis.net/128085-schneles-aendern-von-image1-picture.html)

Mikescher 23. Jan 2009 20:39


Schneles Ändern von Image1.Picture
 
Hi,

Ich hab mal wieder ein Problemchen, ich hab auch schon hier im Forum gesucht und mir selbst fällt auch keine Lösung mehr ein.
Also ich hab eine Form auf der 400 :oops: (dynamisch erzeugte) TImage's liegen. Nun wird ca alle 200ms die Pictures der TImage's geändert wie zu erwarten war daas dann nicht mehr so flüssig wie ich es gern hätte :mrgreen: .

Gibt es da eine andere Frage wie man die Pictures mit weniger CPU austauschen kann ?
(Hab schon statt LoadFromFile alle Bitmaps in Variablen gespeichert -> Hat aber nichts gebracht).

Ich bin auch offen für andere Komponente oder andere Möglichkeiten
(Hauptsache es geht dann irgendwie :zwinker: )

MfG Mikescher

Valle 23. Jan 2009 20:41

Re: Schneles Ändern von Image1.Picture
 
Nimm doch einfach eine Grafik-Engine (Andorra2d) und verwende Sprites. Die sind schnell und wirklich sehr einfach zu bedienen. Da hast du dich also schnell eingearbeitet! :)

Mit freundlichen Grüßen,

Valle

Mikescher 23. Jan 2009 21:41

Re: Schneles Ändern von Image1.Picture
 
Ja Andorra2D kenn ich und ich benutze es auch.

Aber ich wollte dieses Projekt eigentlich "selber" machen außerdem bin ich jetzt schon so gut wie fertig und hänge nur noch an dem Problem mit dem Changen der Pictures
(Und irgendwie muss Andorra2D das ja auch machen :mrgreen: )

Außerdem glaube/hoffe ich dass das kein so großes Problem ist :zwinker:

MfG Mikescher

Dunkel 23. Jan 2009 21:51

Re: Schneles Ändern von Image1.Picture
 
Zitat:

Zitat von Mikescher
(Und irgendwie muss Andorra2D das ja auch machen :mrgreen: )

Außerdem glaube/hoffe ich dass das kein so großes Problem ist :zwinker:

Nö, Hardwarebeschleunigt ist das wahrscheinlich auch kein Problem. :zwinker:

Windows (das Canvas-Objekt, GDI, etc.) wurden halt nicht auf Spiele-Performance getrimmt, wo jedes Frame zählt. In einer "normalen" Büro-Applikation, wofür das nicht-beschleunigte Grafiksystem von Windows konzipiert wurde, kann es auch mal etwas gemächlicher zugehen.

Apollonius 23. Jan 2009 21:56

Re: Schneles Ändern von Image1.Picture
 
Du solltest eine einzige große Paintbox statt der Images verwenden. Im OnPaint zeichnest du von einem vorab konstruierten Offscreen-Bitmap. Wenn sich die Bilder ändern, zeichnest du das Offscreen-Bitmap neu. Durch diese Technik kannst du die Zeichenoperationen auf dem Bildschirm auf ein Minimum reduzieren. Möglicherweise hilft auch schon die Eigenschaft DoubleBuffered des Formulars.

Luckie 23. Jan 2009 23:08

Re: Schneles Ändern von Image1.Picture
 
Zitat:

Zitat von Apollonius
Im OnPaint zeichnest du von einem vorab konstruierten Offscreen-Bitmap. Wenn sich die Bilder ändern, zeichnest du das Offscreen-Bitmap neu.

Kleine Ergänzig, man muss das Offscreen-Bitmap dann natürlich noch auf den Canvas kopieren, sonst sieht man nichts. ;)

turboPASCAL 24. Jan 2009 00:30

Re: Schneles Ändern von Image1.Picture
 
Und das ist dann auch der Haken an der Geschichte, wenn das ein grossens Offscreen-Bitmap ist bringt es
auch wieder Leistungseinbußen.

(T)Images zu verwenden ist keine gute Idee da das zeichnen dieser mehr Zeit braucht. Diese
Komponente ist und war eigentlich nur zum statischen anzeigen von Bildern gedacht.

Alle Bilder nach Bitmaps wandeln und direkt mit BitBlt auf den Canvas bringen sollte genügen.

Mikescher 24. Jan 2009 16:03

Re: Schneles Ändern von Image1.Picture
 
Danke hat funktioniert

MfG Mikescher


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 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 by Thomas Breitkreuz