Libre Office : centrer une boîte de dialogue du gestionnaire.

Résolu
Yakacoder Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Yakacoder Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Pour centrer une boîte de dialogue j'ai utilisé une instruction en Basic qui recueille la taille de l'écran.
Global iLargReso as integer, iHautReso as integer

REM-------------------------SYSTÈME---------------------------------------------------

'Résolution d'écran---------------------------------------------------

sub ResoEcran()
 
    Dim oServiceAff as object, oResEcran as object, oSurface as object
 
    oServiceAff = CreateUnoService("com.sun.star.awt.DisplayAccess")
    oResEcran = oServiceAff.getByIndex(0)
    oSurface = oResEcran.WorkArea
    iLargReso = oSurface.Width
    iHautReso = oSurface.Height
  
end sub


Les variables globales déclarées en amont servent dans un calcul de centrage de toute boîte de dialogue.

Malheureusement elle ne fonctionne plus avec la version 5 de Libre Office, elle provoque une erreur d'interprétation d'une variable de type objet sur la ligne 13 :
oResEcran = oServiceAff.getByIndex(0)
.

Maintenant, j'ignore s’il existe une fonction centrant directement les boîtes de dialogue sur l'écran, sinon, il me faudrait une instruction qui permette de connaître la résolution de tout écran qui fonctionne toujours, pour que le centrage s'effectue par calcul quel que soit la taille des écrans qui afficheront les boîtes de dialogue de mon projet..
A voir également:

1 réponse

Yakacoder Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Pour ceux qui suivent ce sujet, j'ai trouvé une instruction VB qui permet d'obtenir la résolution de l'écran. La voici :
sub ResoEcran()

dim oTaille as object, iLarg as integer, iHaut as integer

oTaille = thisComponent.currentController.frame.getContainerWindow
iLarg = oTaille.size.width
iHaut = oTaille.size.height
msgbox "Résolution de l'écran : " & iLarg & " X " & iHaut

end sub


En tout cas ça fonctionne sur la version 5 de Libre Office.
Je pense que ce sujet est résolu.
0