Bonjour Dude,
Au boulot je n'arrive pas à voir la vidéo (surement des restrictions de sécurités ou un truc dans ce genre).
J'ai donc testé hier soir chez moi.
J'ai inscrit tous le code dans un module que j'ai appelé xRay. La seule chose que j'ai modifié c'est le nom du formulaire. Et j'ai appelé cette macro au démarrage de la base de données (dans personnalisé) et je l'ai lancé depuis Basic comme sur la vidéo. Le résultat est le même et je pense que mon pc n'est pas assez puissant.
Code : Tout sélectionner
Sub xRay
GlobalScope.BasicLibraries.loadLibrary("XrayTool")
ThisDatabaseDocument.CurrentController.connect("","")
oForm = ThisDatabaseDocument.FormDocuments.getByName ("Accueil")
oForm.open
oComponent = oForm.getComponent()
oCC = oComponent.getCurrentController ()
xray oCC
End Sub
xray.PNG
Néanmoins, après pas mal de recherche (et l'appel à un amis) j'ai semble-t'il trouvé une solution. Pour l'instant je n'ai pas pu la tester sur l'ensemble des postes qui nécessiteront un accès à la base, mais apparemment le code fonctionne quand même. Après quelques tests sur les lignes ci-dessous (au niveau des chiffres) c'est ok sur un écran dont la résolution est 1920*1080. Je ne sais pas ce que ça donne si la résolution est différente.
Code : Tout sélectionner
inx = Int(oWin.Size.Width * 80 * 75 / (inWidth * inDpiX))
iny = Int(oWin.Size.Height * 80 * 75 / (inHeight * inDpiY))
Je remets le nouveau code ci-dessous ainsi que la base qui le contient pour aider d'autre personne.
Je clôture également le post mais si tu réponds ici concernant la vidéo je regarderai.
Code : Tout sélectionner
option explicit
global LibOForm as object
Sub LibOFormOpen (evt As Object)
Dim oConnexion AS Object
'ThisDatabaseDocument.CurrentController.ApplicationMainWindow.setVisible(false)
'Dim props(0) As New com.sun.star.beans.PropertyValue
ThisDatabaseDocument.CurrentController.connect("","")
LibOForm = ThisDatabaseDocument.FormDocuments.getByName("Accueil").open
LibOForm.currentController.frame.ContainerWindow.IsMaximized = true
Call WindowsResize(evt)
End Sub
Sub WindowsResize(oVent As Object)
DIM oFrame AS OBJECT, oWin AS OBJECT, oLayoutMng AS OBJECT
DIM inx AS INTEGER, iny AS INTEGER, inDpiX AS INTEGER, inDpiY AS INTEGER, inWidth AS INTEGER, inHeight AS INTEGER, inZoom AS INTEGER, i AS INTEGER
inWidth = 1360
inHeight = 750
oFrame = oVent.Source.CurrentController.Frame
'oFrame.setTitle(oEvent.Source.Title)
oWin = oFrame.getContainerWindow()
oWin.IsMaximized = true' (ohne zu maximieren wird immer die letzte Fenstereinstellung genommen)
oLayoutMng = oFrame.LayoutManager
inDpiX = Int(1440 \ TwipsPerPixelX())
inDpiY = Int(1440 \ TwipsPerPixelY())
inx = Int(oWin.Size.Width * 80 * 75 / (inWidth * inDpiX))
iny = Int(oWin.Size.Height * 80 * 75 / (inHeight * inDpiY))
IF inx < iny THEN
inZoom = inx
ELSE
inZoom = iny
END IF
LibOForm.CurrentController.ViewSettings.ZoomValue = inZoom
End sub
Merci à tous pour votre aide.
A bientôt.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.