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 :

Tooltiptext avec photo


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut Tooltiptext avec photo
    hello j'ai pas pu attendre de prendre mon dej pour poster la discu mais chui sûr que ça ne vous interesse que tres peu...donc voila:

    je cherche en fait a customiser un peu la methode tooltiptext d'un MS FelxGrid en y inserant une photo.
    La photo devera provenir d'une base de données (moteur ADO tout ça) mais pour l'instant j'aimerais juste savoir si c'est possible deja de le faire de maniere non "dynamique"...
    sinon je suis prenneur de tout autre methode ou composant OCX ou autre du moment que ça soit en freeware.
    merci pour toute vos contributions.

  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
    Hello Jadey !
    Si tu veux mon aide :
    1) plus de ce qui est en rouge ici :
    hello j'ai pas pu attendre de prendre mon dej pour poster la discu mais chui sûr que ça ne vous interesse que tres peu...donc voila:
    Tu commences par faire cet effort élémentaire (règles de ce forum)
    2)
    La photo devera provenir d'une base de données (moteur ADO tout ça) mais pour l'instant j'aimerais juste savoir si c'est possible deja de le faire de maniere non "dynamique
    Pour continuer il va bien falloir que tes photos soient rendues accessibles et que tu aies franchi cette étape-là (on ne met jamais la charrue avant les boeufs)
    Qu'entends-tu par "non dynamique" ? le code, c'est TOUJOURS dynamique, par définition.
    3) oui, il est possible d'envoyer dans une info-bulle que l'on fabrique une photo dont on connait l'emplacement.

  3. #3
    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
    Alors (je t'ai dit que nous allions y aller pas à pas, n'est-ce pas ?)

    Nous allons "décortiquer" le problème de cette façon :
    dans un tout premier temps, nous allons ignorer la base de données, pour nous focaliser uniquement sur le problème qui est celui-ci :
    Comment envoyer dans une info-bulle une image à laquelle nous avons accès ?

    Voilà donc le tout premier pas :

    Un tout petit projet contenant :
    - une picturebox nommée picture1, avec sa propriété visible = false et sa propriété scalemode = 3 (en pixels), avec une image de ton choix en propriété Picture
    - un contrôle label nommé label1

    Il va s'agir d'écrire dans l'événement mouse_move de ce label1 les instructions nécessaires à l'apparition d'une info-fulle dans laquelle devra apparaître l'image contenue dans picture1

    Ton premier travail, donc (on améliorera ensuite)

    ajouter une petite image appelée image1, avec sa propriété stretch = True et sa propriété visible = false

    - dans l'événement Mouse_move de label1 :
    * affecter à Image1 l'image de Picture1
    * donner la valeur true à la propriété visible de Image1
    - dans l'événement Form_move :
    * donner la valeur false à la propriété visible de image1

    il est clair que nous devrons ensuite écrire du code pour que les proportions du stretch de image1 respectent celles de picture1, mais nous nous contenterons, à ce stade, de ce tout premier pas...


    Propose-nous ici, sur ces bases, ton 1er code (nous corrigerons au besoin)...

    A toi, ami.

  4. #4
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    voili voilou
    Fichiers attachés Fichiers attachés

  5. #5
    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
    Aie, Jadey, s'il te plait
    Change ton rar pour un zip
    Ma machine ne les accepte pas (les rar), pour des raisons de sécurité... excuse-moi.

    Il suffit d'ailleurs que l'on voie ici ton code, directement, puisqu'il devrait être très court, en principe, à ce niveau ! (codes de l'événement Mouse_move du label et de l'événement mous_move de la Form)

  6. #6
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    pô grave
    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image1.Visible = False
    End Sub
     
    Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image1.Picture = Picture1.Picture
    Image1.Visible = True
    End Sub

  7. #7
    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
    Bien, jadey, mais maintenant :
    1) tu vas utiliser la méthode move pour, d'un seul coup :

    positionner image1 (qui va servir d'info-bulle), là où tu souhaites afficher (pas trop loin de label1), l'info-bulle, en donnant à cette info-bulle les dimensions que tu souhaites qu'elle ait

    Je te rappelle que la méthode move gère d'un seul coup les propriétés Left, Top, Width et Height.

    Si la méthode Move n'a pas de secrets pour toi, profites-en pour utiliser, à ce stade déjà, la méthode Line pour dessiner une ligne reliant un coin (de ton choix) du label1 à un coin (judicieusement choisi) de Image1

    A toi...

  8. #8
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Bon j'ai fais mieux (ça a l'air de correspondre plus a ce que je veux)
    je travaille avec une fenêtre dont la propriété BorderStyle est sur "none" au lieu de l'image puisque l'infobulle est censée contenir et une photo et du texte.
    Toutefois avant de finir ce mini projet, j'aimerais savoir deux trois trucs:
    1_ J'ai remarqué que le contrôle PictureBox pouvais contrairement a Image contenir un label et donc du text...
    Ne serait t'il par consequent donc pas plus judicieux de travailler avec simplement un PictureBox???
    2_ Si je continue sur ma lancée et que je travaille avec la fenêtre dont le BorderStyle est sur "none" (je joue aussi sur d'autre proriétés) et que les photos proviennent cette fois d'une base de données est ce qu'il y'a un risque que ça tourne au ralenti mon bazar???

  9. #9
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    code source
    Fichiers attachés Fichiers attachés

  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
    Ne vas pas plus vite que la musique, ami jadey.

    Ce n'est pas seulement en raison de ce que du texte devra également être inséré dans ton info-bulle, qu'il te faudra en effet passer par un container. Nous y viendrons le moment venu.

    Pour le reste :
    1) non, c'est bien une image et pas une picturebox qu'il te faudra utiliser dans l'info-bulle, de sorte à jouer plus agilement avec (propriété stretch qui nous facilitera grandement la vie et qui sera moins gourmande qu'un Paintpicture ou l'API StretchBlt...)
    2) non, le fait que tu aies plusieurs photos ne viendra rien ralentir : le têmps de traitement sera le même qu'il y ait une, deux ou 200 photos)

    Revenons à nos moutons et au stade auquel nous en étions :

    Regarde ceci (un peu bâclé mais...) :

    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
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      If Image1.Visible Then
        Image1.Visible = False
        Me.Cls
      End If
    End Sub
     
    Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      Image1.Picture = Picture1.Picture
      bordsupx = Label1.Left + Label1.Width
      bordsupy = Label1.Top + Label1.Height
      Form1.Line (bordsupx, bordsupy)-(bordsupx + 600, bordsupy + 600)
      Image1.Move bordsupx + 600, bordsupy + 600, 600, 600
      Image1.Visible = True
     
    End Sub
    Mets ton label1 assez loin des bords de ta form.


    J'attends que tu me parles de certains inconvénients à ne faire que comme celà... Tu en as sans le savoir déjà trouvé un, mais pas pour les raisons les plus importantes, dont j'attends que tu me les signales

    Vas-y ! Réfléchis à tout, et j'attends ta série de "mais..." car ces "mais..." sont la base de ce qui suivra...

    A toi...
    Je te laisse car il me faut dormir , d'une part, et que, d'autre part, je préfère que tu penses tranquillement (en y réfléchissant avec force) à tous les mais... (il y en a...)
    A demain.

  11. #11
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    c'est bien mais ton tooltip ne bouge pas avec le curseur...faudrait ajouter les coordonnées X et Y renvoyé par Label1_mouseMouve()
    sinon je ne percute pas...y'a rien qui cloche pour moi sauf comme je te l'ai dis pour le texte, ça marche quand on bouge la fenetre quand on la rappetisse...
    c'est quoi l'etape suivante grand manitou?

  12. #12
    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
    Bonjour Jadey,

    Je réponds d'abord à ta remarque :

    Une info-bulle ne bouge pas : elle s'affiche, un point c'est tout.

    Faisons par contre ensemble l'inventaire de ce qui clocherait si on se contentait de ce que j'ai déjà écrit :

    1) quid si label1 est proche de l'un des 4 bords ?
    Héhé ! il va nous falloir gérer l'endroit où afficher l'info-bulle en fonction de ce qu'il est possible de faire en tenant compte de la position de label1... non ?
    donc gestion par select case ou if
    2) quid si, à l'endroit d'affichage de l'info-bulle, se trouve un contrôle prioritaire en plan d'affichage (une textbox, une picturebox, ... par exemple, viendront toujours masquer un contrôle image, quel que soit le zorder de ce contrôle image... hé hé !
    Voilà la raison pour laquelle il va falloir mettre ce contrôle image dans un container (qui, lui, peut venir au 1er plan de n'importe quoi d'autre par un bon zorder). Ce container peut être une picturebox, comme tu l'avais entrevu, mais également et pour moins cher un simple Frame, à l'intérieur duquel on place la petite image et le texte ou tout ce que tu veux d'autre
    3) quid de la petite ligne dessinée sur la form pour relier joliment le label image1 (ou au cadre qui la contient si on la place dans un cadre) ? Ben... elle disparaitrait tout simplement derrière tout contrôle qui se trouverait en chemin... Ouille !
    Il va donc falloir la placer dans le container lui-même. Mais : si ce container est une picturebox (ce que tu avais prévu pour ton texte...) on utiliseras la méthode line, acceptable pour dessiner dans une picturebox. Si par contre on choisit un Frame, moins gourmand, on ne peut pas y "dessiner"... oh !... mais on peut par contre, bien évidemment, y insérer tout bêtement un contrôle line, pardi....
    Réfléchis à tout celà avec calme....lentement....
    Je reviendrai en fin de soirée avec un avancement dans ce sens... en le commentant tout au long, dans le code.
    D'accord ?

  13. #13
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    hmm j'aime bien l'effet quand ça bouge ça a l'air plus "sophistiqué" un tooltip qui bouge avec le curseur.
    tes remarques sont intelligentes mais je n'aurais aucun interet à aller plus loin pour la raison qu'aucun des cas precités ne represente un probleme pour ce que je veux faire.
    je dois realiser un projet avec VB (dont je ne m'etait encore jamais servi jusque la d'ailleurs ou si peu) et le tooltip ne represente en fait qu'un "gadjet" je dois apprendre encore bcp de chose (moteur ADO tout ça lol).
    je te remercie en tout cas infiniment pour les conseils prodigués, si tu souhaite continuer (tu semble evoluer dans une perspective de developpement d'un composant que tu pourrais d'ailleurs ajouter aux contributions) je suivrai avec interet et curiosité ce que tu risque de nous pondre la lol.
    merci encore

  14. #14
    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
    Bonjour Jadey.
    Tu as raison : je suis parti pour faire un ocx et suis déjà en train de le faire (je m'attache pour l'instant à établir le mécanisme dans un module et "transposerai" ensuite).
    Mais tu es apparemment le seul intéressé.
    Je vais donc me contenter de ne le faire que pour mon plaisir et ne le proposerai pas à la rubrique contributions.
    Bonne journée.

    PS : si tu le souhaites je nh'ai aucune objection à t'envoyer ce soir la chose déjà bien avancée, que tu pourras utiliser telle quelle dans ton projet, avec de quoi mettre dans la bulle une photo et un texte, ou une photo sans texte, ou encore un texte sans photo.
    Je ne veux pas mettre un zip ici (me boufferait le peu qui reste de mon quota) et un code tout seul ne serait pas suffisamment "parlant" sauf à l'accompagner d'un fleuve d'explications. Je ne veux par ailleurs pas "déposer" un fichier sur un des sites qui le proposent gratuitement (suis ensuite littéralement "harcelé"...) Il te faudrait dans ce cas me donner une adresse email par MP pour que je t'envoie un zip.

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/09/2006, 16h03
  2. [Conception] Créer tableau avec photo et descriptif
    Par webide dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/08/2006, 17h31
  3. MS Flex Grid et evenement MouseMove: info bulle avec photo
    Par jadey dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 03/08/2006, 08h17
  4. Ouvrir une image avec Photo Editor
    Par malingue dans le forum Access
    Réponses: 1
    Dernier message: 07/07/2006, 16h54
  5. [MySQL] Formulaire de MAJ avec photos
    Par ¤dinky¤ dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 31/03/2006, 13h04

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