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] Transférer ".picture" en paramètre


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut [VB6] Transférer ".picture" en paramètre
    Salut,

    J'ai créé une classe pour manipuler des propriétés (j'aurais pu le faire en structure mais cela fait du code plus lourd)

    J'ai besoin d'affecter à une image, la propriété picture d'une autre. du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image2.picture = Image1.picture
    Comme il ne s'agit pas toujours de image1 et Image2, j'ai pensé à stocker "picture" dans ma classe. Cela donne quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Classe :
    private MonImage as Image
    private MonLib as string
    ...
    Public sub Add(byval Lib as string, byval CodePic as string)
    MonLib = lib
    Monimage.picture = CodePic  'ou LoadPicture(CodePicture)
    ...
    end sub
    Je ne suis pas sur d'avoir bien définit mes paramètres (MonImage as image, CodePic as String).
    Toujours est-il que j'obtiens des messages d'erreur indiquant une incompatibilité de type !

    Existe-t-il un moyen de passer la propriété "picture" en paramètre de fonction ou faut-il faire autrement ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    en le déclarant CodePic comme variant ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    Salut,

    J'ai trouvé une solution mais je ne sais pas si c'est la meilleure car elle prend un peu de place en mémoire pour rien.

    J'étais bien parti mais il fallait ajouter "Set" pour définir ma variable de stockage et passer l'image d'origine en entier en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Classe : 
    private MonImage as Image 
    private MonLib as string 
    ... 
    Public sub Add(byval Lib as string, byval ImageSource as Image) 
    MonLib = lib 
    Set Monimage.picture = ImageSource.picture
    ... 
    end sub
    Mais cela ne suffit pas car la copie du picture est refusée. J'ai donc du écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Monimage = ImageSource
    Là tout fonctionne mais j'ai dupliqué en mémoire une image complète (avec toutes ses autres propriétés) alors que seul picture m'intéressait.

    Si vous avez une meilleure solution...

  4. #4
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    Salut,

    J'ai trouvé une solution plus élégante et moins couteuse en place mémoire :

    Toutes mes images sont stockées dans le fichier de ressources et possèdent donc un identifiant unique.

    Tout ce qu'il reste à faire est de stocker l'identifiant et non la propriété picture.

    Le pb restant est qu'à partir d'un objet image, on a pas accès à l'identifiant dont on s'est servi pour initialiser cette image. Dans mon cas, chaque image possède une codification (stockée dans la propriété Tag).
    J'ai donc définit les identifiants des images en me basant sur cette codification. Ainsi, je peux "reconstruire" l'identifiant d'un objet image uniquement à partir de son code associé.

    On peut aussi directement coller l'identifiant dans la propriété Tag...

    Fin

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

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