Bonsoir Gwenael,

Ce soir, j'ai essayé d'avancer à nouveau sur ce problème de boite "non-modal"

une autre piste interessante :
http://www.oooforum.org/forum/viewtopic.phtml?t=31010

Apparament, en initialisant le Model de la boite de dialogue avec "com.sun.star.awt.UnoControlDialogModel", setVisible affiche la boite de façon permanente. Ne me demande pas pourquoi ce comportement, j'ai essayé de trouver une explication rationnelle dans l'api, mais sans succès :-(

Je me suis inspiré de ce post pour écrire le code suivant :
------------------------------------------------------------------------

global oDialogControl as object

sub DailogVisible
   DialogLibraries.loadLibrary("Standard")
   if isNull(oDialogControl) then
oDialogModel = createUnoService( "com.sun.star.awt.UnoControlDialogModel" )
       oDialogControl = createUnoDialog(DialogLibraries.Standard.Dialog1)
' rmq: si tu commentes la ligne ci-dessous, setVisible ne rend la fenêtre visible que durant un temps de rafraichissement, comme tu l'as constaté
       oDialogControl.setModel( oDialogModel )
   end if
   oDialogControl.setVisible(true)
end sub

' sub associée à un bouton "Fermer"
sub DailogInVisible
   oDialogControl.setVisible(false)
end sub

------------------------------------------------------------------------

Dans le cas, de mon application, le fait d'initialiser le Model à "com.sun.star.awt.UnoControlDialogModel" pose problème:-( Je n'arrive plus à accéder aux contrôles par leur nom !!!

Si tu avance sur le sujet, tiens nous au courant

Bonne nuit

Bob


gwenael.trellu a écrit :
J'ai trouvé une piste grâce aux conseils de Yves et Bob que je remercie.

Au lieu d'utiliser la commande Dlg.Execute(), il suffit de créer une boucle 
dans lequel il y a la commande :

Dlg.setVisible(True)

car cette commande fait apparaitre la boîte de dialogue mais pendant un temps 
'rafraichissement'.

J'ai créé un sous programme qui tourne le temps qu'une variable x atteigne une 
valeur.
Il me reste plus qu'à capturer un évenement sur la boîte de dialogue pour 
arrêter la boucle et le tour sera joué.

Je transmettrrais le code complet prochainement.

Gwen.

Envoyez vos cartes de voeux depuis www.laposte.net Elles seront ensuite distribuées par le facteur : pratique et malin !


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à