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

VB 6 et antérieur Discussion :

Déterminer la position d'un UserControl dans une Form


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut Déterminer la position d'un UserControl dans une Form
    Je voudrais savoir comment, à l'intérieur du code d'un UserControl, on peut connaître sa position dans la form qui le contient.
    j'ai essayé avec la propriété Ambiant à partir d'un sujet que j'avais retrouvé sur ce forum mais il ne donne pas les propriétés Top et Left

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Si tu as inclus les propriétés Top et Left à ton UserControl, ça ne devrait pas être un problème.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Concrêtement je rajoute 2 propriétés : UC_top et UC_left
    Dans le code appelant je fais UserControl1.UC_top = UserControl1.top et idem pour left?
    Ca ma semble un peu redondant ou j'ai mal compris ?

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Je viens de relire la question et tu dis bien
    à l'intérieur du code d'un UserControl
    Je ne vois pas comment tu peux connaître d'avance la position qu'occupera ton UserControl dans une éventuelle form...

  5. #5
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    zazaraignée a raison, imagine que tu veuilles ajouté deux contrôles identique?
    Ils seront superposés. Galère...

    La seul chose que tu peux faire c'est organiser les contrôles interne à ton Usercontrol.

    Vous avez vu pour une fois j'ai répondu a un post sans l'avoir créer.. lol

    Comme on dit en normandie, c'est ty qui d'viendrait a mitemp bon...
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Je pense qu'il y a un flou sur le but recherché. Pourrais tu expliquer ce que tu veux exactement faire de ces propriétés stp ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    euh oui si moi j'ai compris j'ai eu le même problème

    En fait la question est claire, à tout moment, comment savoir la position d'une instance d'ocx dans un conteneur.

    Personnellement je stockerais ces valeurs dans des attributs du controle (top, left) adhoc au moment de sa création, et ce depuis l'extérieur car c'est de là qu'on peut obtenir control.left ou control.top

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Citation Envoyé par Delphi-ne
    Concrêtement je rajoute 2 propriétés : UC_top et UC_left
    Dans le code appelant je fais UserControl1.UC_top = UserControl1.top et idem pour left?
    Ca ma semble un peu redondant ou j'ai mal compris ?
    L'ajout d'une propriété et de ses méthodes Let et Get, tu dois connaître, vu que tu as créé ton contrôle. Mais les propriétés de ce que tu mets dedans ne sont pas forcément automatiquement passées à ton contrôle. Tu dois les reprogrammer. Quoique, Top et Left... plus j'y penses, devraient s'ajouter automatiquement...

    Tu peux nous lister les propirétés de ton UC qui sont visible dans l'éditeur VB quand tu en place un sur un Form?

  9. #9
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Coucou.
    Je ressort ce sujet non répondu car j'ai le même besoin :
    Je souhaite connaitre la position du usercontrol (ou plutôt de son instance) sur la form. En effet Usercontrol.Left et Usercontrol.Top n'existent pas
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  10. #10
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    J'avais pas vu qu'il y avait un autre post qui était presque similaire et dans lequel se trouvait ceci :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Private Type POINTAPI
            X As Long
            y As Long
    End Type
    Private Type RECT
            Bottom As Long
            Left As Long
            Right As Long
            Top As Long
    End Type
    Private Type WINDOWPLACEMENT
            flags As Long
            Length As Long
            ptMaxPosition As POINTAPI
            ptMinPosition As POINTAPI
            rcNormalPosition As RECT
            showCmd As Long
    End Type
    Private Declare Function GetWindowPlacement Lib "user32" ( _
        ByVal Hwnd As Long, _
        lpwndpl As WINDOWPLACEMENT) As Long
     
    Private Declare Function MoveWindow Lib "user32" ( _
        ByVal Hwnd As Long, _
        ByVal X As Long, _
        ByVal y As Long, _
        ByVal nWidth As Long, _
        ByVal nHeight As Long, _
        ByVal bRepaint As Long) As Long
    Public FMeCoord As WINDOWPLACEMENT
     
    Private Type LesCoord
            Height As Long
            Left As Long
            Top As Long
            Width As Long
    End Type
     
    Public MeCoord As LesCoord
     
    '******************************************************************
    '** la propriété ScaleMode de UserControl doit être mis à Pixels **
    '** la propriété KeyPreview de UserControl doit être mis à True  **
    '******************************************************************
     
    Public Sub GetPlace(Hwnd As Long)
        'recuperation des coordonnées de l'UserControl posé sur le conteneur
        GetWindowPlacement Hwnd, FMeCoord
     
    MeCoord.Height = FMeCoord.showCmd - FMeCoord.rcNormalPosition.Right
    MeCoord.Left = FMeCoord.rcNormalPosition.Left
    MeCoord.Top = FMeCoord.rcNormalPosition.Right
    MeCoord.Width = FMeCoord.rcNormalPosition.Top - FMeCoord.rcNormalPosition.Left
    End Sub
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Salut avigeilpro
    Avais tu recuperé le ZIP (que j'ai retiré hier ) ICI, si non je peux toujours le remettre.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Non, je ne l'ai pas réccupéré.
    Je n'ai pas bien compris non plus de quoi il sagissait
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  13. #13
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Merci, je l'ai réccupéré, je regarderais ca plus tard
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  14. #14
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    bonjour,
    Connaître la position d'un UC (dans le code de l'UC) dans une forme est des plus simple....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TP = Extender.Top
    LF = Extender.left
    'Eventuellement connaître sont index
    'Attention.. renvoi une erreur si pas d'index
    Ix = Extender.Index
    'Eventuellement connaître sont nom
    Nm = Extender.Name.
    L'objet Extender ne peu tout renvoyer, il faut jonglé avec Extender et UC
    A+

Discussions similaires

  1. Déterminer la Valeur la plus grande dans une table
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/08/2014, 23h35
  2. [Débutant]Appeler un UserControl dans une Form
    Par Shr3ck dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/03/2009, 14h14
  3. Position de la souris dans une form
    Par planetevoyage dans le forum Delphi
    Réponses: 3
    Dernier message: 12/10/2006, 10h39
  4. Position d'un enregistrement dans une table ou requête Query
    Par polinevol dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/01/2006, 03h53
  5. Position d'un enregistrement dans une table
    Par polinevol dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/01/2006, 09h10

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