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

Résolu/Fermé
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016 - Modifié par Chris 94 le 25/04/2016 à 01:11
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016 - 26 avril 2016 à 00:47
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 dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016
26 avril 2016 à 00:47
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