Magnetiser la form sur les bords de l'ecran

Soyez le premier à donner votre avis sur cette source.

Vue 4 217 fois - Téléchargée 352 fois

Description

Bonjour a tous voila c'est ma premiere source..elle a pour but de deplacer la form sur le bord de l'ecran quand
celle ci depasse une certaine distance ( définit par le Slider1 qui peut etre predefini en appelant la sub )du bord de l'ecran.
Pour ce qui est de la barres des taches de windows elle predefini en bas et je lui est compté une largeur de 400.
je n'est trouver aucune api qui permet de s'avoir la position de la barres des taches pour la prendre en compte ...
J'ai crée cette source car j'en chercher une equivalente sur vbfrance mais j'ai pas trouver alor j'en ai realiser une
en espérant que sa pourra servire a quelqun un jour .... ;-)
Pour se qui est des commentaire j'ai essayé de bien expliquer le code mais bon c'est ma premiere source j'ai un peu de mal ...
voila @++ tout le monde et dite tout ce que vous avez le coeur n'hésitez pas a me dire si ma source est nul ou bien...
ps: Dans la source il y a un autre bout de code qui permet de deplacer la form automatiquement sur un coté.

Source / Exemple :


Private Sub Auto_coller(frm As Form, distance As String)

Dim Doite As String
Dim Gauche As String
Dim Haut As String
Dim Bas As String

    droite = Screen.Width - frm.Width 
    Gauche = 0 
    Haut = 0
    Bas = Screen.Height - frm.Height

On Error GoTo quit
If frm.Top < Haut + distance Then
    frm.Top = Haut
        If frm.Left < Gauche + distance Then
            frm.Left = Gauche
        ElseIf frm.Left > droite - distance Then
            frm.Left = droite
        End If
ElseIf frm.Top > Bas - distance - 400 Then
    frm.Top = Bas - 400
        If frm.Left < Gauche + distance Then
            frm.Left = Gauche
        ElseIf frm.Left > droite - distance Then
            frm.Left = droite
        End If
ElseIf frm.Left < Gauche + distance Then
    frm.Left = Gauche
        If frm.Top < Haut + distance Then
            frm.Top = Haut
        ElseIf frm.Top > Bas - distance Then
            frm.Top = Bas
        End If
ElseIf frm.Left > droite - distance Then
    frm.Left = droite
        If frm.Top < Haut + distance Then
            frm.Top = Haut
        ElseIf frm.Top > Bas - distance Then
            frm.Top = Bas
        End If
End If
Exit Sub

quit:
End Sub
'__________________________________________________________________
Private Sub coller(frm As Form, where As String)

Dim Doite As String
Dim Gauche As String
Dim Haut As String
Dim Bas As String
    droite = Screen.Width - frm.Width
    Gauche = 0
    Haut = 0
    Bas = Screen.Height - frm.Heigh
    WhereB = UCase(where)
If WhereB = "HAUT" Then
    frm.Top = Haut
ElseIf WhereB = "BAS" Then
    frm.Top = Bas - 400
ElseIf WhereB = "GAUCHE" Then
    frm.Left = Gauche
ElseIf WhereB = "DROITE" Then
    frm.Left = droite
End If
End Sub

Conclusion :


Chez moi sur Mon Windows XP sa marche sans pb j'ai pas tester sur un autre system mais j'utilise pas d'api donc je pensse que sa marche sur tout

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
14
Date d'inscription
jeudi 19 mai 2005
Statut
Membre
Dernière intervention
30 décembre 2006

Petite étourderie de ma part! J'ai résolu le problème par moi même! Ton code est propre et térriblement efficace! Merci pour ta superbe contribution!! :)

10/10!
Messages postés
14727
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
29 septembre 2020
144
Explique moi un truc, pourquoi tu met tes nombres dans des string ??????????
Messages postés
14
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
21 mai 2005

Rien de nouvell a apprendre ! mon avie.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.