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

VBA Access Discussion :

Dessin vba sous access avec la classe GDI+mise à jours 2019. [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut Dessin vba sous access avec la classe GDI+mise à jours 2019.
    Bonjour

    J'utilise gdi+ dernière version mise à jours avec access. J'ai repris mon éditeur de dessin commencé en 2011 et je n'arrive toujours pas à résoudre ce problème. Je trace 2 rectangles avec la souris "mousemove" qui se chevauchent "ogdi.drawrectangle etc. (sur une image blanche) . Je les remplis tous les deux d'une couleur différente. Je déplace un des deux rectangles en recréant à chaque "mousemove" le rectangle déplacé. Jusque là, pas de problème, sauf que j'ai toujours le dessin original du rectangle qui chevauche l'autre rectangle. Pour palier à ce problème, j'ai entouré la région "région frame" et je l'ai dessinée en blanc, idem pour le fond que j'ai rempli en blanc (Couleur de fond de l'image." Region fill"). En final, le rectangle que je n'ai pas déplacé, se trouve amputé de la partie qui le chevauchait et qui est repeinte en blanc.
    En fait, je voudrai retrouver le rectangle non déplacé dans son intégralité après avoir déplacé mon rectangle.
    La solution de faire un reset sur l'image de départ ne fonctionne pas, à partir du moment où j'ai pu dessiner entre temps d'autre formes (ellipses traits etc. et que je veux les conserver). J'ai l'impression que je dois travailler avec autre chose que les régions, mais je ne sais pas dans quelle direction chercher. J'ai réussi à recréer beaucoup de choses ressemblant à ce qui se fait dans world (Eux, ils savent le faire), mais là je cale. Quelqu'un pourrait 'il m'orienter vers une solution?.

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    Bonjour,

    En t'aidant de la base exemple d'Arkham46 Exemples_gdiplus.mdb que tu trouves dans sa page perso sur le forum,
    je pense que tu pourras trouver une assistance intéressante dans l'exemple 'démonstration Drag & drop et Collisions' que l'on trouve dans le menu général.

    Cordialement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut Gdiplus dessin vba
    Non, ça ne marche pas, il fait systématiquement un reset sur l'image de depart pour effacer la position de depart. J'ai d'ailleurs tracé un trait avec la souris sur l''image pour tester et celui-ci a disparu après un déplacement de ses bonshommes. J 'ai parcouru tous ses exemples sans trouver la solution. Dans msword, on a l'impression que chaque dessin est indépendant. C'est ce que j'essaye de reproduire pour mon éditeur de dessin. Je dessine,déplace et redimensionne toute les formes, mais j'ai toujours cette trace de la région qui me cache ce qu'elle avait dissous.
    Merci quand même de m'avoir répondu

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    Je viens de regarder l'exemple rapidement.
    Quand tu ajoutes un rectangle, l'ajoutes-tu à la collection gimage ? ( gImages.Add lImage, lImage.Id)
    Ensuite la procédure Impaint redessine les images sauvegardées

    A voir

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut
    Non, je ne le fais pas. je dessine et je sauvegarde à la fin. il est peut-être là mon problème. Je vais essayer de creuser dans cette direction.
    Je reprend la discussion si je n'y arrive pas.
    Merci de m'avoir aidé aussi rapidement
    A plus

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut
    Bonjour
    Quand j'utilise la procédure suivante, ça fonctionne très bien avec des images gif.(comme dans la démo drag and drop)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      For Each loCtrl In Forms(stMonFormulaire).Controls
                If loCtrl.Name = stClipName Then
                    Set lImage = New clImage
                    cheminImg = "\ftdessin\" & stClipName & ".gif"
                   ogdi.ImgNew(lImage.id).LoadFile CurrentProject.path & cheminImg
                    lImage.X = X
                    lImage.Y = Y
                    lImage.Name = loCtrl.Tag
                    gImages.Add lImage, lImage.id
                End If
            Next
            ImgPaint
            ogdi.Repaint Me.Image0
    Par contre si j'essaie de dessiner un rectangle et de l'ajouter à la collection en utilisant cette procédure, ça ne marche pas, le rectangle n'est pas ajouté et pire, je ne peux plus ajouter de gif sur mon image.
    J'ai donc essayé d'utiliser une autre procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                   ogdi.DrawRectangle gX, gY, gX1, gY1, -1, vbBlack, 0.75, GdipDashSOLID, , gDragRgn                
                    Set lforme = New clImage
                    lforme.X = gX
                    lforme.Y = gY
                    lforme.Name = gDragRgn
                    gformes.Add lforme.Name, lforme.id
                    ImgPaintforme
                    ogdi.RepaintNoFormRepaint Me.Image0, , , True
    Et là, plus de problèmes avec les gif, mais le rectangle n'est toujours pas ajouté dans la collection gformes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private gformes As New Collection    ' Collection d'objets images (type clImage)
    Je suppose qu'un rectangle n'est pas une image et là je ne sais plus quoi faire.

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

Discussions similaires

  1. [SQL]Problème requete sql sous access avec vba
    Par aaliyan dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/04/2007, 18h53
  2. Problemes avec grosseur de requete en VBA sous Access
    Par acheo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/04/2007, 11h58
  3. execute une macro via vba sous access
    Par nes dans le forum Access
    Réponses: 4
    Dernier message: 28/03/2006, 23h15
  4. Requete sous Access avec AND et OR
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/02/2006, 10h35
  5. Réponses: 8
    Dernier message: 20/02/2006, 23h25

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