begin process at 2012 02 17 06:14:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

 > REDIMENSION DE CONTROLES EN FONCTION DE LA TAILLE DE LA FEUILLE

REDIMENSION DE CONTROLES EN FONCTION DE LA TAILLE DE LA FEUILLE


 Information sur la source

Note :
Aucune note
Catégorie :Control Niveau :Débutant Date de création :06/09/2002 Date de mise à jour :06/09/2002 11:38:20 Vu / téléchargé :3 598 / 377

Auteur : yomm

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

ce module permet de redimmensionner CERTAINS controles (car je ne voulais lme faire pour tous...) lorsque l'on modifie la taille d'une fenetre. Il a l'avantage de focntionner aussi pour les MDI.

Source

  • 'appelle des fonctions:
  • '--------------------------------------------------------------------------------------------
  • 'fonction Charge_Size
  • '
  • 'placer le code suivant dans l'évenement Load de la feuille:
  • 'Charge_Size Me, 0
  • 'Me.Height = 'hauteur de la feuille désirée au chargement
  • 'Me.Width = 'largeur de la feuille désirée au chargement
  • 'Charge_Size Me, 0
  • '
  • 'placer le code suivant dans l'évenement Activate de la feuille:
  • 'Charge_Size Me, 1
  • '
  • 'placer le code suivant dans l'évenement QueryUnload de la feuille:
  • 'Charge_Size Me, 2
  • '--------------------------------------------------------------------------------------------
  • 'fonction F_Resize
  • 'placer le code suivant dans l'évenement QueryUnload de la feuille:
  • 'F_Resize Me
  • '--------------------------------------------------------------------------------------------
  • 'attention pour les ListBox il faut forcer le paramètre IntegralHeight à False
  • Global F_Size(20) As F_Dimension
  • Global Flag_Size As Integer
  • Global Event_Info As EventInfo
  • Global Flag_Load As Boolean
  • Public Type F_Dimension
  • Name As String
  • Hauteur As Integer
  • Largeur As Integer
  • H_Default As Integer
  • L_Default As Integer
  • H_Last As Integer
  • L_Last As Integer
  • End Type
  • Public Function Charge_Size(Controle As Form, Event_Info As Integer)
  • Dim i As Integer
  • i = 0
  • On Error GoTo Erreur
  • If Event_Info = 0 Then
  • If Flag_Size <> 0 Then
  • Flag_Size = 0
  • Else
  • Flag_Load = True
  • End If
  • ElseIf Event_Info = 1 Then
  • If Flag_Load = True Then
  • Flag_Load = False
  • F_Size(0).Name = Controle.Name
  • F_Size(0).H_Default = Controle.Height
  • F_Size(0).L_Default = Controle.Width
  • Do Until F_Size(i).Name = ""
  • i = i + 1
  • Loop
  • F_Size(i).Name = F_Size(0).Name
  • F_Size(i).H_Default = F_Size(0).H_Default
  • F_Size(i).L_Default = F_Size(0).L_Default
  • Flag_Size = Flag_Size + 1
  • Else
  • F_Size(0).Name = Controle.Name
  • i = 1
  • Do Until F_Size(i).Name = F_Size(0).Name
  • i = i + 1
  • Loop
  • F_Size(0).H_Default = F_Size(i).H_Default
  • F_Size(0).L_Default = F_Size(i).L_Default
  • Flag_Size = Flag_Size + 1
  • End If
  • ElseIf Event_Info = 2 Then
  • i = 1
  • Do Until F_Size(i).Name = Controle.Name
  • i = i + 1
  • Loop
  • F_Size(i).Name = ""
  • F_Size(i).H_Default = 0
  • F_Size(i).L_Default = 0
  • Controle.Height = F_Size(0).H_Default
  • Controle.Width = F_Size(0).L_Default
  • F_Resize Controle
  • End If
  • F_Size(0).H_Last = Controle.Height
  • F_Size(0).L_Last = Controle.Width
  • F_Size(0).Hauteur = Controle.Height
  • F_Size(0).Largeur = Controle.Width
  • Exit Function
  • Erreur:
  • Controle.Hide
  • Controle.WindowState = 0
  • Resume
  • End Function
  • Public Function F_Resize(Controle As Form)
  • If Flag_Size <> 0 Then
  • If Controle.Height <= 360 Then
  • F_Size(0).Hauteur = F_Size(0).H_Last
  • F_Size(0).Largeur = F_Size(0).L_Last
  • Exit Function
  • End If
  • If Controle.Height < F_Size(0).H_Default Then
  • Controle.Height = F_Size(0).H_Default
  • End If
  • If Controle.Width < F_Size(0).L_Default Then
  • Controle.Width = F_Size(0).L_Default
  • End If
  • On Error Resume Next
  • Dim Resiz As Double
  • For Each Control In Controle
  • If TypeOf Control Is CommandButton Or TypeOf Control Is TextBox Or TypeOf Control Is Frame Or TypeOf Control Is ListBox Or TypeOf Control Is OptionButton Or TypeOf Control Is CheckBox Then
  • Resiz = Controle.Height / F_Size(0).Hauteur
  • Control.Top = Control.Top * Resiz
  • Control.Height = Control.Height * Resiz
  • Resiz = Controle.Width / F_Size(0).Largeur
  • Control.Left = Control.Left * Resiz
  • Control.Width = Control.Width * Resiz
  • 'If (TypeOf control Is CommandButton Or TypeOf control Is Frame Or TypeOf control Is OptionButton) And (Controle.Width <> F_Size.Largeur) And (Controle.Height <> F_Size.Hauteur) Then
  • ' control.Font.Size = control.Font.Size * Resiz
  • 'End If
  • 'MsgBox control
  • Else
  • 'Resiz = Controle.Height / F_Size.Hauteur
  • 'control.Height = control.Height * Resiz
  • 'Resiz = Controle.Width / F_Size.Largeur
  • 'control.Width = control.Width * Resiz
  • End If
  • Next
  • F_Size(0).H_Last = Controle.Height
  • F_Size(0).L_Last = Controle.Width
  • F_Size(0).Hauteur = Controle.Height
  • F_Size(0).Largeur = Controle.Width
  • End If
  • End Function
'appelle des fonctions:
'--------------------------------------------------------------------------------------------
'fonction Charge_Size
'
'placer le code suivant dans l'évenement Load de la feuille:
'Charge_Size Me, 0
'Me.Height = 'hauteur de la feuille désirée au chargement
'Me.Width = 'largeur de la feuille désirée au chargement
'Charge_Size Me, 0
'
'placer le code suivant dans l'évenement Activate de la feuille:
'Charge_Size Me, 1
'
'placer le code suivant dans l'évenement QueryUnload de la feuille:
'Charge_Size Me, 2
'--------------------------------------------------------------------------------------------
'fonction F_Resize
'placer le code suivant dans l'évenement QueryUnload de la feuille:
'F_Resize Me
'--------------------------------------------------------------------------------------------
'attention pour les ListBox il faut forcer le paramètre IntegralHeight à False

Global F_Size(20) As F_Dimension
Global Flag_Size As Integer
Global Event_Info As EventInfo
Global Flag_Load As Boolean

Public Type F_Dimension
    Name As String
    Hauteur As Integer
    Largeur As Integer
    H_Default As Integer
    L_Default As Integer
    H_Last As Integer
    L_Last As Integer
End Type

Public Function Charge_Size(Controle As Form, Event_Info As Integer)

    Dim i As Integer
    
    i = 0
    On Error GoTo Erreur
    
    If Event_Info = 0 Then
            If Flag_Size <> 0 Then
                Flag_Size = 0
            Else
                Flag_Load = True
            End If
    ElseIf Event_Info = 1 Then
        If Flag_Load = True Then
            Flag_Load = False
            F_Size(0).Name = Controle.Name
            F_Size(0).H_Default = Controle.Height
            F_Size(0).L_Default = Controle.Width
            Do Until F_Size(i).Name = ""
                i = i + 1
            Loop
            F_Size(i).Name = F_Size(0).Name
            F_Size(i).H_Default = F_Size(0).H_Default
            F_Size(i).L_Default = F_Size(0).L_Default
            Flag_Size = Flag_Size + 1
        Else
            F_Size(0).Name = Controle.Name
            i = 1
            Do Until F_Size(i).Name = F_Size(0).Name
                i = i + 1
            Loop
            F_Size(0).H_Default = F_Size(i).H_Default
            F_Size(0).L_Default = F_Size(i).L_Default
            Flag_Size = Flag_Size + 1
        End If
    ElseIf Event_Info = 2 Then
        i = 1
        Do Until F_Size(i).Name = Controle.Name
            i = i + 1
        Loop
        F_Size(i).Name = ""
        F_Size(i).H_Default = 0
        F_Size(i).L_Default = 0
        Controle.Height = F_Size(0).H_Default
        Controle.Width = F_Size(0).L_Default
        F_Resize Controle
    End If
    
    F_Size(0).H_Last = Controle.Height
    F_Size(0).L_Last = Controle.Width
    F_Size(0).Hauteur = Controle.Height
    F_Size(0).Largeur = Controle.Width

    Exit Function

Erreur:
    Controle.Hide
    Controle.WindowState = 0
    Resume
    
End Function

Public Function F_Resize(Controle As Form)
    
    If Flag_Size <> 0 Then
    
        If Controle.Height <= 360 Then
            F_Size(0).Hauteur = F_Size(0).H_Last
            F_Size(0).Largeur = F_Size(0).L_Last
            Exit Function
        End If
        
        If Controle.Height < F_Size(0).H_Default Then
           Controle.Height = F_Size(0).H_Default
        End If
        If Controle.Width < F_Size(0).L_Default Then
            Controle.Width = F_Size(0).L_Default
        End If
        
        On Error Resume Next
        
        Dim Resiz As Double
        
        For Each Control In Controle
            If TypeOf Control Is CommandButton Or TypeOf Control Is TextBox Or TypeOf Control Is Frame Or TypeOf Control Is ListBox Or TypeOf Control Is OptionButton Or TypeOf Control Is CheckBox Then
                Resiz = Controle.Height / F_Size(0).Hauteur
                Control.Top = Control.Top * Resiz
                Control.Height = Control.Height * Resiz
                Resiz = Controle.Width / F_Size(0).Largeur
                Control.Left = Control.Left * Resiz
                Control.Width = Control.Width * Resiz
                'If (TypeOf control Is CommandButton Or TypeOf control Is Frame Or TypeOf control Is OptionButton) And (Controle.Width <> F_Size.Largeur) And (Controle.Height <> F_Size.Hauteur) Then
                '    control.Font.Size = control.Font.Size * Resiz
                'End If
                'MsgBox control
            Else
                'Resiz = Controle.Height / F_Size.Hauteur
                'control.Height = control.Height * Resiz
                'Resiz = Controle.Width / F_Size.Largeur
                'control.Width = control.Width * Resiz
            End If
        Next
        F_Size(0).H_Last = Controle.Height
        F_Size(0).L_Last = Controle.Width
        F_Size(0).Hauteur = Controle.Height
        F_Size(0).Largeur = Controle.Width
    End If
    
End Function

 Conclusion

si besoin envoyez moi un message : yomm
le module peut également etre  télécharger en zip

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) YOMMEXPLORER.NET EXPLORER / EXPLORATEUR DE DOSSIERS RÉPERTOI...
Source avec Zip Source avec une capture Source .NET (Dotnet) DIREXPLORER EXPLORATEUR / EXPLORER DE DOSSIERS MULTIFONCTION...
Source avec Zip Source avec une capture YOMMEXPLOREROCX POUR CE QUI VEULENT UN VRAI EXPLORATEUR WIND...
Source avec Zip Source avec une capture POUR CEUX QUI PRENNENT LES LISTVIEW POUR DES LISTBOX
Source avec Zip Source avec une capture YOMMEXPLORER : OUBLIEZ LE DIRLISTBOX ET LE FILELISTBOX

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

Commentaires et avis

Commentaire de celiphane le 06/09/2002 23:32:17

Ya ça aussi, pour redimensionner les contrôles, ça marche avec tout sauf avec les "tabbed dialog" (pis c'est de moi aussi ;p !!!) :

http://www.vbfrance.com/article.aspx?Val=3436

Commentaire de freddo038 le 20/01/2009 23:55:51

bonjour !

J'ai essayé votre code mais je rencontre un pb pour ajouter les lignes dans queryunload. Je ne trouve pas cet emplacement...

Pourriez vous m'aider ? Avez vous une base Access avec votre code opérationnel sur un petit formulaire avec qq controles ?

Merci Beaucoup
Fredddo038

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales