Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Auflösungs Problem (https://www.delphipraxis.net/142996-aufloesungs-problem.html)

PhilmacFLy 7. Nov 2009 17:10


Auflösungs Problem
 
Hey DP'ler

Ich hab folgendes Problem:
Ich programmier ja jetzt schon längere Zeit an meinem Viergewinnt. Jetzt ist es ednlich in einem, naja sagen wir mal beta-final Statdium angekommen, nun hab ich aber ein Problem, nämlich, das es unter Windows 7 hinb hoher Auflösung zu ruckeln beginnt, aber nur bei Schnellen Bewgegungen. Fahr ich langasm über den Bildschirm so läuft der Pfeil den ich als Anzeige benutze flüssig über den Bildschirm. Die Auflösung beträgt 1360x768. Unter Win XP läuft alles flüssig.

Zur Anzeige Technik:
Ich mal mein Feld und ales auf eine TBitmap, weise diese anschließend auf eine TImage zu.

Hat irgednjemand eine Idee woran es liegen könnte?

SirThornberry 7. Nov 2009 17:12

Re: Auflösungs Problem
 
wenn du sowieso alles auf ein Bitmap zeichnest würde ich das TImage weg lassen und es selbst zeichnen. Warum gehst du derzeit den Umweg über ein TImage?

PhilmacFLy 7. Nov 2009 17:14

Re: Auflösungs Problem
 
Wie meinst du das selbst zeichnen?
Mir erschien das als Anzeige die beste möglcihkeit, deswegen habe ich diesen Weg gewählt.

SirThornberry 7. Nov 2009 17:19

Re: Auflösungs Problem
 
Ein TImage hat kein eigenes Handle. Soll heißen das es auf die Oberfläche seines Parents zeichnet. Dadurch ist Transparenz möglich. Wenn man keine Transparenz benötigt kann man zum Beispiel im OnPoint des Forms mit BitBlt etc. selbst das Bild auf das Form zeichnen. Oder man nimmt eine Paintbox und plaziert im OnPaint der Paintbox den Quelltext welcher das Bild in die Paintbox malt (ebenfalls mit BitBlt). Dadurch das TImage auf die Oberfläche (Canvas) seines Parents malt wird das malen auch jedes mal aufgerufen wenn der Parent oder auf dem Parent sich etwas ändert. Dadurch ist das TImage was performance angeht nicht wirklich gut geeignet.

Beispiel für OnPaint des Forms:
Delphi-Quellcode:
BitBlt(Self.handle, 0, 0, YourBitmap.width, YourBitmap.height, YourBitmap.canvas.handle, 0, 0, SRCCOPY);

PhilmacFLy 7. Nov 2009 17:26

Re: Auflösungs Problem
 
Wann wird OnPaint den ausgelöst?

SirThornberry 7. Nov 2009 17:30

Re: Auflösungs Problem
 
Immer wenn durch Verschieben des Fensters etc. es notwendig ist das neu gemalt werden muss. Wenn du ein neu malen erzwingen willst genügt ein Aufruf von "Self.invalidate"

PhilmacFLy 7. Nov 2009 17:44

Re: Auflösungs Problem
 
Ne das funktioniert nicht mit dem was ich momentan programmiert ab, und ganz umscheissen kann ichs nicht, weil mein Vater muss mit dem Programm in 1 Woche auf messe und so.

SirThornberry 7. Nov 2009 17:45

Re: Auflösungs Problem
 
Dann wäre die andere Variante die Paintbox.

PhilmacFLy 7. Nov 2009 17:49

Re: Auflösungs Problem
 
Ja ich habs mit der Paintbox probiert, aber des haut auch nicht so hin wie gehofft. Gibts keinen Anderen Lösung ansatz?

PhilmacFLy 8. Nov 2009 15:00

Re: Auflösungs Problem
 
Also es hat sich noch was ergeben, und zwar wenn mans mit 16Bit Fargen anstatt 32bit laufen lässt, geht wieder flüssig.


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