IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

LibreOffice Base (7+) : Comment redimensionner dynamiquement les formulaire et cacher les outils et menus


Sujet :

Contribuez

  1. #1
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut LibreOffice Base (7+) : Comment redimensionner dynamiquement les formulaire et cacher les outils et menus
    trouvez ci apres une macro que vous pouvez utiliser lors des chargements de formulaire MACRO2, ou en appel dynamique MACRO1 lors d'un clic bouton de formulaire pour en appeler un autre.

    MACRO1: EN APPEL DYNAMIQUE LORS D'UNE MACRO
    ' ╔═══════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
    ' ║ RESIZE ROUTINES
    ' ╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════╝█
    ' ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    ' xCurrentController ( relatif àau formulaire actif, donc permet de spécifier un controlleur de formulaire précis
    ' iWidth,iHeight, dimension souhaité en points du formulaire ( pas très pratique lorsque libre office vous affiche des cm)
    ' Hide as boolean status des barres d'outils et menus (faux = caché, true = affiché)
    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Sub ResizeFormAndHideMenu(xCurrentController as object,iWidth,iHeight,Hide as boolean)
     
       Dim xLayoutManager as Object
       Dim vRect as Object
       Dim intHeight as Integer
       Dim intWidth  as Integer
       Dim intXPos as Integer
       Dim intYPos as Integer
     
       If xCurrentController.isFormDesignMode Then
          Exit Sub
       End If
     
       xLayoutManager = xCurrentController.Frame.LayoutManager
       xLayoutManager.visible = Hide
     
       If IsNull(xCurrentController.Frame) then exit sub
       vRect = xCurrentController.Frame.ContainerWindow.PosSize
       intXPos=vRect.X
       intYPos=vRect.Y
       intHeight=(iHeight * 1.00)
       intWidth=(iWidth * 1.00)
     
      ' Ceci par ce que la gestion des barres de défilement est merdique lorsque l'on est au raz des contrôles.....
       xCurrentController.Frame.ContainerWindow.setPosSize(intXPos, intYPos, intWidth+20, intHeight+20, 15)
       ' Enfin le dimensionnement souhaité
       xCurrentController.Frame.ContainerWindow.setPosSize(intXPos, intYPos, intWidth, intHeight, 15)
     
    End Sub
    MACRO2: CODE MACRO POUR EVENEMENT CHARGEMENT DE FORMULAIRE (mode édition: menu formulaire/propriétés du formulaire/onglet événements)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sub Formulaire1OnLoadResize
    	Dim Controller as Object
            Controller = thisComponent.CurrentController
    	ResizeFormAndHideMenu(Controller,720,265,false)
    end sub
    PS: JE NE SAIS PAS POUR QUELLE RAISON le dimensionnement de certains FORMULAIRES ne fonctionne pas quoi que vous fassiez ( sauf en forçage dynamique ) avec la macro événementielle....

  2. #2
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Bonjour, et merci pour ce code
    Personnellement j'ai rajouté dans ResizeFormAndHideMenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xLayoutManager.hideElement("private:resource/menubar/menubar")
    pour bien supprimer la barre de menu.

    Par contre je n'arrive pas à "squeezer" le double affichage du formulaire.
    J'ai assigné la Macro2 à l'évènement : mode edition/menu Outils/Personnaliser/onglet Evènements/Ouvrir document --> Enregistré dans le Formulaire
    Le comportement est le même si on assigne : mode édition/Propriétés du formulaire/évènements/Lors du chargement
    Quand on demande l'ouverture monFormulaire.open, le formulaire s'affiche brièvement d'abord en "mode édition" puis la Macro 1 prend le relais et le formulaire s'affiche bien sans les menus et dans les dimensions souhaitées.

    Comment peut-on éviter/masquer le premier affichage ?

    Si vous avez une idée ....
    Merci.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Comment changer dynamiquement les tables liées
    Par drejacqu dans le forum Access
    Réponses: 2
    Dernier message: 27/05/2009, 11h33
  2. Comment rendre dynamique les noms des colonnes d'une vue
    Par patic dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/02/2009, 10h41
  3. Réponses: 4
    Dernier message: 26/07/2007, 13h07
  4. Réponses: 1
    Dernier message: 01/05/2006, 11h17
  5. Réponses: 2
    Dernier message: 15/03/2006, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo