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] Création d'une image par le code


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur VB6
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur VB6
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Par défaut [VB6] Création d'une image par le code
    Bonjour,

    Je voudrais comme dit dans le sujet, ajouter/crée une image à ma form, par le code.

    Exemple :

    J'ai un bouton, et lorsque je clique dessus, une nouvelle image est crée avec un nom spécifique que je puisse le récupérer.
    Ensuite la nouvelle image sera placée dans ma form grâce à image1.left et image1.top

    Et je voudrais aussi que si une image est déja crée avec le même nom ( image1 ), alors le nom de la nouvelle image sera ( image2 )

    Exemple plus concret :

    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
    Private Sub Command1_Click()
     
    ' Ajout de l'image
     
    ' Vérification du nom de la dernière image crée et ajout du nom
    if NouvelleImage1 est déja créé then
           NouvelleImage.name = Image2
    else
           NouvelleImage.name = Image1
    end if
     
     
    ' Récupération du nom de la nouvelle image dans un label ou variable
    label1.caption = image1.name
     
    'Placement de l'image dans la form
    Image1.left = 500
    Image1.top = 500
    Image1.visible = true
     
    End Sub
    J'espere que vous avez compris ma demande !

    N'hésitez pas à me poser des questions pour plus d'infos.

    Merci

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Dans ton editeur VB6, touche F2, rechercher,
    Pour la sauvegarde d'une image, SavePicture, sauvegarde en .BMP
    Pour la récupération de l'image, LoadPicture, .bmp, .cur, .ico, .rle, .wmf, .emf, .gif et .jpg
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Re

    Un exemple, 3 PictureBoxs, 2 CommandButtons et 1FileListBox et ce
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Option Explicit
    Dim NumImgEnCour As Integer
     
    Private Sub Form_Load()
    Me.ScaleMode = vbPixels: Me.AutoRedraw = True
     
    Command1.Move 10, 5, 70, 21: Command1.Caption = "Go"
     
    Picture1.ScaleMode = vbPixels: Picture1.AutoRedraw = True
    Picture1.Move 10, Command1.Top + Command1.Height + 5, 200, 200: Picture1.Appearance = 0
     
    Picture2.ScaleMode = vbPixels: Picture2.AutoRedraw = True
    Picture2.AutoSize = True: Picture2.Appearance = 0
    Picture2.Move Picture1.Left + Picture1.Width + 5, Picture1.Top
     
    Command2.Move Picture1.Left + Picture1.Width + 5, 5, 70, 21: Command2.Caption = "Récupe"
     
    Picture3.ScaleMode = vbPixels: Picture3.AutoRedraw = True
    Picture3.Appearance = 0
    Picture3.Move Picture1.Left, Picture1.Top + Picture1.Height + 5, 405, 150
     
    File1.Visible = False: File1.Path = App.Path 'branchement sur le dossier du présent programme
    End Sub
    Private Sub Command1_Click()
    DessineR
    EnregistreR
    End Sub
     
    Sub DessineR()
       Dim CX As Integer, CY As Integer
       Dim F As Single, F1 As Single, F2 As Single
       Dim I As Integer, RestE As Integer   ' Déclare les variables
     
       CX = Picture1.ScaleWidth / 2   ' Obtient le centre horizontal
       CY = Picture1.ScaleHeight / 2   ' Obtient le centre vertical
       Picture1.DrawWidth = 8   ' Définit la propriété DrawWidth.
       Randomize: RestE = Int(11 * Rnd + 5)
       For I = 50 To 0 Step -2
          F = I / 50   ' Effectue les calculs
          F1 = 1 - F: F2 = 1 + F   ' intermédiaires.
          ' Définit la couleur de premier plan.
          Picture1.ForeColor = QBColor(I Mod RestE)
          Picture1.Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
       Next I
       DoEvents   ' Laisse s'effectuer d'autres traitements.
       If CY > CX Then   ' Définit la propriété DrawWidth.
          Picture1.DrawWidth = ScaleWidth / 25
       Else
          Picture1.DrawWidth = ScaleHeight / 25
       End If
     
       Randomize: RestE = Int(11 * Rnd + 5)
       For I = 0 To 50 Step 2   ' Définit la boucle.
          F = I / 50   ' Effectue les calculs
          F1 = 1 - F: F2 = 1 + F   ' intermédiaires.
          ' Dessine l'angle supérieur gauche.
          Picture1.Line (CX * F1, CY)-(CX, CY * F1)
          ' Dessine l'angle supérieur droit.
          Picture1.Line -(CX * F2, CY)
          ' Dessine l'angle inférieur droit.
          Picture1.Line -(CX, CY * F2)
          ' Dessine l'angle inférieur gauche.
          Picture1.Line -(CX * F1, CY)
          ' Change de couleur pour chaque.
          Picture1.ForeColor = QBColor(I Mod RestE)
       Next I
       DoEvents   ' Laisse s'effectuer d'autres traitements.
    End Sub
    Sub EnregistreR()
    Dim T As Integer
    'recherche le N° d'image déjà utilisé
    File1.Refresh
    NumImgEnCour = 0
    For T = 0 To File1.ListCount - 1
        If InStr(File1.List(T), "Image") Then NumImgEnCour = NumImgEnCour + 1
    Next T
    'sauvegarde de l'image dans le dossier ou se trouve le présent programme
    SavePicture Picture1.Image, App.Path & "\Image" & CStr(NumImgEnCour) & ".BMP"
    End Sub
     
    Private Sub Command2_Click()
    'recuperation simple
    Picture2.Picture = LoadPicture(App.Path & "\Image" & NumImgEnCour & ".bmp")
    'récupération avec déformation
    Picture3.PaintPicture LoadPicture(App.Path & "\Image" & NumImgEnCour & ".bmp"), 0, 0, Picture3.ScaleWidth, Picture3.ScaleHeight
    'ou
    'récupération avec déformation en copiant l'image de Picture2
    'Picture3.PaintPicture Picture2.Image, 0, 0, Picture3.ScaleWidth, Picture3.ScaleHeight
    End Sub
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur VB6
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur VB6
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Par défaut
    Salut,

    Merci pour ta réponse et ton code.

    J'ai une erreur en exécutant le prog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File1.Visible = False: File1.Path = App.Path 'branchement sur le dossier du présent programme
    File1 Variable not defined.

    Utilise tu un CommonDialog ?

    Merci

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Re

    Un exemple, 3 PictureBoxs, 2 CommandButtons et 1 FileListBox et ce.....
    Nom : FileListBox.jpg
Affichages : 770
Taille : 58,3 Ko
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur VB6
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur VB6
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Par défaut
    Oops c'est ma faute j'ai mal lu.

    Effectivement ça fonctionne, mais c'est pas exactement ce que je recherche en fait.

    Je voudrais que sur ma form principale, il n'y ai aucune picture de crée par vb6 en lui même ( donc par moi ).

    Je veux que ça soit que quand l'utilisateur clique sur le bouton, vb6 rajoute une picture à la form ( comme si je clique dans picture dans la barre d'outil et que je la dessine sur la form ).

    Est-ce mieux expliqué ?

    Merci

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    ReRe

    Commence par ajouter picturebox à ton Form
    mets sa propriété index à 0 et sa propriété visible à false

    Tu peux t'inspirer de cette discussion, le post 2.
    Au lieu d'une Line, tu fais cela avec un PictureBox
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. Création d'une webForm par le code
    Par pipleton dans le forum Visual Studio
    Réponses: 1
    Dernier message: 15/06/2012, 07h22
  2. [SP-2010] création d'une balises par code
    Par Padawansr dans le forum SharePoint
    Réponses: 0
    Dernier message: 10/08/2011, 15h55
  3. Réponses: 2
    Dernier message: 22/06/2010, 15h24
  4. Réponses: 2
    Dernier message: 22/08/2006, 19h24
  5. Création d'une image à partir de son code binaire
    Par thefaycal dans le forum ASP
    Réponses: 11
    Dernier message: 18/05/2006, 17h39

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