Bonsoir à vous !
Je me suis vue confronté à un petit soucis il y à peu lorsque j'ai voulu faire apparaitre une application exterieure dans un Panel de mon application.

j'ai reussi en faisant comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ShellExecute(Application.Handle,'OPEN','Demoniak3D.exe', Nil, Nil, SW_SHOW);
Pour lancer l'application exterieure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Hand := FindWindow(nil,'Demoniak3D - Ready.);
Pour récupérer le Handle de la fiche de cette application et enfin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Windows.SetParent(hand, Panel1.Handle);
pour afficher l'application dans mon panel.

Jusqu'ici cela fonctionne.


Il se trouve que j'ai besoin d'afficher d'autres composants par dessus ce panel, je me suis dit que j'allais simplement utiliser BringToFront ou SendToBack pour afficher mes images par dessus ce panel mais il n'y a rien à faire, quoi qu'il en soit, à partir du moment ou j'attribut le handle de la fiche de l'application exterieure à mon Panel je ne peux rien afficher par dessus...

Savez vous comment résoudre ce problème?



(EDIT: Je précise que l'application que je "capture" dans mon panel est une application 3D temps réel, lorsque je fais un bringtofront avec un composant contenant une image, ceci fonctionne seulement sur les parties ou le programme exterieur ne se trouve pas.
J'ai l'impression qu'il "rafraichit" la zone ou il s'affiche de maniere à ce que rien d'autre ne puisse se trouver entre le programme et l'utilisateur.)