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 :

[VB6] Modification des propriétés d'un objet de form dans un module


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut [VB6] Modification des propriétés d'un objet de form dans un module
    Bonjour , j'aimerai savoir comment modifier les propriétés d'un objet PictureBox d'une form dans un module , je vous explique le probléme j'ai inséré cette fonction dans un module
    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
    '*** Triangle HAUT ***'
    Sub TraceTriangleHaut(point_croisement, couleur, decalage_x, decalage_y)
        Dim i, f, F1
        PicAnimation.ForeColor = couleur
        For i = 0 To 80 Step 1
            f = i / 80
            F1 = 0.5 + f
            PicAnimation.Line (point_croisement * F1 + decalage_x, decalage_y)-(point_croisement + decalage_x, point_croisement + decalage_y)
        Next i
        ' Contour
        PicAnimation.ForeColor = 0
        PicAnimation.Line (point_croisement * 0.5 + decalage_x, decalage_y)-(point_croisement + decalage_x, point_croisement + decalage_y)
        PicAnimation.Line (point_croisement * 1.5 + decalage_x, decalage_y)-(point_croisement + decalage_x, point_croisement + decalage_y)
        PicAnimation.Line (point_croisement * 1.5 + decalage_x, decalage_y)-(point_croisement * 0.5 + decalage_x, decalage_y)
    End Sub
    et j'en fais appel dans mon usercontrol et ma page de propriété .
    Le soucis intevient quand le programme arrive sur les lignes ou se trouve PICANIMATION , car il ne connait pas le "chemin" , ca doit etre quelque chose du genre "usercontrol.picanimation" ..... mais ca marche pas , donc si vous savez comment procéder pour resoudre ce probléme , merci de m'aider

    merci d'avance
    amicalement lucas

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Si comme je le devine Picanimation est une picturebox d'un activex, ce code devrait se trouver dans l'activex. Et il devrait être affublé des propriétés nécessaires au passage des paramètres nécessaires. !

  3. #3
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    Euh , en fait , j'ai mon activeX dans lequel ce trouve la fonction TraceTriangleHaut , mais j'ai egalement mis ce code dans la page de propriété pour pouvoir avoir un apercu du tracage avant d'appliquer tous les paramétres , donc c'est bete de mettre 2 fois le mm code , donc je veux le mettre dans un module ..... mais le soucis est ke ca bloque des ke ca tombe sur PicAnimation :s

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je ne comprends plus rien à rien, là...
    Questions :
    1) Nom précis de l'activeX
    2) Nom précis de la Form sur laquelle il a été "déposé"
    3) Nom précis sous lequel il a été déposé sur la Form (nom donné, donc, dans ton projet, au contrôle représentant ton activex)

  5. #5
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    euh :
    1 - MonControle (UserControl1.ctl)
    2 - JE N'AI PAS FORM SUR LAQUEL EST DEPOSER MON ACTIVE X , INUTILE
    3 - AUCUN DU COUP

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Comprends de moins en moins .

    Questions :
    1) Quel est le nom du container (Form ou autre) de la PictureBox dans laquelle tu dessines ?
    2) Quel est son type (du container) ?
    3) Quel est le nom donné à la PictureBox
    4) A quel projet est associé ton module (nom du projet) en précisant s'il s'agit du projet d'un activex ou d'un projet standard ?

  7. #7
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    1 - J'ai 2 container dans lequel je dessine , l'un se situe sur mon activeX : MonControle(UserControl1.ctl) , et l'autre situé sur ma page de propriété : Propriété_Animation(PropertyPage)
    2 - Son type est une PictureBox
    3 - Son nom : PicAnimation
    4 - Le module est associé à mon projet control activeX : PrjCtl

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Excuse-moi mais là, j'ai vraiment des difficultés à "voir" ce mécanisme...

    Alors : voilà, si tout est construit "normalement" chez toi, comment appeler une procédure d'un module se trouvant dans le même projet que celui de la form qui contient une picturebox, afin, en envoyant des paramètres à cette procédure, de dessiner dans la picturebox

    sur une form une picturebox picture1 et un bouton de commande command1
    et le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Command1_Click()
      Dim X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer
      X1 = 0
      Y1 = 0
      X2 = Picture1.ScaleWidth
      Y2 = Picture1.Height
      dessinedanspicture1 Picture1, X1, Y1, X2, Y2
    End Sub
    et dans un module du même projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub dessinedanspicture1(dansquoi As PictureBox, XX1 As Integer, YY1 As Integer, XX2 As Integer, YY2 As Integer)
      dansquoi.ForeColor = 0
      dansquoi.Line (XX1, YY1)-(XX2, YY2)
    End Sub
    J'insiste, ne comprenant pas ton mécanisme, sur le fait que le projet final et celui de ton activeX sont des projets distincts

  9. #9
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    J'ai un Porjet nommé : PrjCtl
    Un Controle ActiveX nommé : MonControle
    Un module nommé : Module1
    Une page de propriété nommé : Propriété_Animation

    J'ai une picturebox nommé : PicAnimation , sur MonControle et également sur Propriété_Animation .
    J'ai placé une fonction dans mon Module1
    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
    '*** Triangle HAUT ***'
    Sub TraceTriangleHaut(point_croisement, couleur, decalage_x, decalage_y)
        Dim i, f, F1
        PicAnimation.ForeColor = couleur
        For i = 0 To 80 Step 1
            f = i / 80
            F1 = 0.5 + f
            PicAnimation.Line (point_croisement * F1 + decalage_x, decalage_y)-(point_croisement + decalage_x, point_croisement + decalage_y)
        Next i
        ' Contour
        PicAnimation.ForeColor = 0
        PicAnimation.Line (point_croisement * 0.5 + decalage_x, decalage_y)-(point_croisement + decalage_x, point_croisement + decalage_y)
        PicAnimation.Line (point_croisement * 1.5 + decalage_x, decalage_y)-(point_croisement + decalage_x, point_croisement + decalage_y)
        PicAnimation.Line (point_croisement * 1.5 + decalage_x, decalage_y)-(point_croisement * 0.5 + decalage_x, decalage_y)
    End Sub
    Dans MonControle et Propriété_Animation , je fait appel à cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TraceVanneHaut point_croisement, couleur, decalage_x, decalage_y
    Mais il faut que je spécifi le chemin de PicAnimation.... Comment faire ??

    J'espere cette foi , jmfmarques , avoir était plus clair.

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Non !
    Dans quel projet se trouve ton module ?
    Celui de l'exécution finale ou celui de Moncontrole ?
    Si moncontrole est le nom de ton activex, quel est son nom exact dans ton projet final (une fois inséré, donc).

    Bon ... je dois sortir...

    Je vais te donner une piste sur laquelle tu pourras mieux travailler que moi qui n'ai pas tes "choses" entre les mains :

    1) tu peux préciser le nom d'une form en paramètre d'une procédure dans un module

    ex:

    à l'appel :
    dim toto as integer
    procedureappelee Form1, picture1, toto

    dans le module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public sub procedureappelee (titi as form, machin as picturebox, tata as integer)
      titi.picture1.width = toto * tata
    end sub
    2) tu peux de la même facon préciser le chemin d'une procédure à appeler

    A toi de jouer en fonction de ce que tu vois et que je ne vois pas ...

Discussions similaires

  1. OO modification des propriétés des objets
    Par Jasmine80 dans le forum Langage
    Réponses: 2
    Dernier message: 04/09/2009, 10h45
  2. Réponses: 3
    Dernier message: 12/09/2007, 10h53
  3. [MSForm] Modification des propriétés de contrôles
    Par JOHN14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/09/2007, 11h50
  4. [VBA] récupérer tout les noms des propriétés d'un objet
    Par ooyeah dans le forum Général VBA
    Réponses: 6
    Dernier message: 05/03/2007, 16h17
  5. [VB6] Modification des axes d'un composant Chart
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2003, 08h33

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