Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Window in Form zeichnen (https://www.delphipraxis.net/193358-window-form-zeichnen.html)

EWeiss 20. Jul 2017 23:59


Window in Form zeichnen
 
Ich möchte mein Window das nicht sichtbar ist in eine Form zeichnen.
Geht das überhaupt? Gibt es da einen Trick?

Mein Problem.

Um mein Window zu Animieren muss ich dieses als Parent in eine Form setzen.
Das hat den Nachteil das ich nach der Animation dieses wieder zurücksetzen muss.
Der Effekt dabei ist das die Form dann für einen Moment nicht mehr sichtbar ist also eine Art Ruckel Effekt.

Das möchte ich gerne vermeiden.

Wenn ich hingehe
Delphi-Quellcode:
FPreview.ParentWindow := WinHandle;


Dann animiert der Mist nicht mehr. ;)
Das Window hingegen wird dann aber in der Form gezeichnet.
Einen anderen weg kenne ich jetzt nicht.

gruss

bcvs 21. Jul 2017 08:19

AW: Window in Form zeichnen
 
Zitat:

Zitat von EWeiss (Beitrag 1377144)
Ich möchte mein Window das nicht sichtbar ist in eine Form zeichnen.

Das verstehe ich nicht. Wie soll man irgendetwas zeichnen, das unsichtbar ist? Und das soll dann auch noch animiert sein.:gruebel:

Kann du vielleicht nochmal genauer beschreiben, was du da machst?

Sherlock 21. Jul 2017 08:29

AW: Window in Form zeichnen
 
Grundsätzlich geht das durch setzen der Form als Parent des Windows. Aber wie das NonVCL läuft, kann ich nicht sagen. Ich weiß aber auch, daß man sich damit ein bis zwei Probleme einfängt, die man vielleicht lieber vermeiden möchte.

Sherlock

EWeiss 21. Jul 2017 09:52

AW: Window in Form zeichnen
 
Zitat:

Zitat von bcvs (Beitrag 1377149)
Zitat:

Zitat von EWeiss (Beitrag 1377144)
Ich möchte mein Window das nicht sichtbar ist in eine Form zeichnen.

Das verstehe ich nicht. Wie soll man irgendetwas zeichnen, das unsichtbar ist? Und das soll dann auch noch animiert sein.:gruebel:

Kann du vielleicht nochmal genauer beschreiben, was du da machst?

Tja das sind die Zauberkunststückchen der Win32API aber im Grunde ganz einfach wenn man WM_PAINT in Zusammenspiel mit WM_PRINT beherrscht.

Zitat:

Grundsätzlich geht das durch setzen der Form als Parent des Windows. Aber wie das NonVCL läuft, kann ich nicht sagen.
Ja aber das ist doch das was ich zur zeit tue ;)
Deshalb ja meine Frage.
Zitat:

Um mein Window zu Animieren muss ich dieses als Parent in eine Form setzen.
Zitat:

daß man sich damit ein bis zwei Probleme einfängt
Nein in dem fall nicht denn sie wird ja zurück auf den Desktop gelegt nach dem die Form komplett gezeichnet wurde.

gruss

Sherlock 21. Jul 2017 11:16

AW: Window in Form zeichnen
 
Ich verstehe jetzt was Du vorhast :D

Aber eines der Probleme ist, durch die Blume gesagt, daß Messages nicht zuverlässig ankommen. Eventuell mußt Du die Messages anders einfangen und weiterleiten?

Sherlock

EWeiss 21. Jul 2017 12:06

AW: Window in Form zeichnen
 
Zitat:

Zitat von Sherlock (Beitrag 1377174)
Ich verstehe jetzt was Du vorhast :D

Aber eines der Probleme ist, durch die Blume gesagt, daß Messages nicht zuverlässig ankommen. Eventuell mußt Du die Messages anders einfangen und weiterleiten?

Sherlock

Sie kommen alle korrekt an wenn ich das MainWindow als Parent in die Form setze.
Nutze ich hingegen

Delphi-Quellcode:
FPreview.ParentWindow := WinHandle;


Ja dann muss ich dir recht geben keine Message wird dann weitergegeben.
Ist auch normal denn dann zeichne ich mein Window ja in die Form es gibt also keine realen Controls mehr in der Form die Messagen empfangen könnten.

Hmm.. Schwierig mal wieder. Ich muss das irgendwie hinbekommen ohne SetParent zu verwenden.
Das hat böse Nebeneffekte wie du schon sagst. ;)

gruss

EWeiss 21. Jul 2017 14:23

AW: Window in Form zeichnen
 
So sieht das aus wenn ich das ParentWindow zuweise.
Aber wie gesagt dann werden keinerlei Messagen mehr verarbeitet.

Irgendwie frustrierend.

gruss

EWeiss 22. Jul 2017 15:16

AW: Window in Form zeichnen
 
Bin den Kram am ändern.
So wie es jetzt aussieht gibt es kein Ruckeln mehr da ich das Window nun direkt animiere ohne SetParent oder einer extra Form.
Nur zur Info ;)

Zitat:

Eventuell mußt Du die Messages anders einfangen und weiterleiten?
yep! Ich Subclass den ganzen Kram jetzt anstelle von Hooks.
Ich benötige ja nur die WM_SHOWWINDOW Message.

gruss


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