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

C++Builder Discussion :

comment charger une photo?


Sujet :

C++Builder

  1. #1
    Membre actif
    Inscrit en
    Janvier 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 27
    Par défaut comment charger une photo?
    bonjour tout le monde, je programme avec builder6 C++ j'ai créé un bouton pour charger une photo pour chaque personne mais quand je charge la photo elle s'applique pour tous je veux que chaque personne a ca propre photo aider moi svp?
    voila le coude que j'ai fais:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm7::BitBtn1Click(TObject *Sender)
    {
     
    AnsiString image;
    if (OpenPictureDialog1->Execute())
      {
     
     
        image = OpenPictureDialog1->FileName;
        DBImage1->Picture->LoadFromFile(image);
     
      }
    }

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Bonjour,
    la requête qui se trouve dans ton TQuery ne doit pas correspondre à ce que tu veut faire, peut tu nous montrer un peut plus de ton code ?

  3. #3
    Membre actif
    Inscrit en
    Janvier 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 27
    Par défaut
    bjr, bon voila j'ai fais un programme pour enregistrer des client, mon programme marche correctement je voulez charger des photos pour chaque client donc dans mon programme j'ai ajouter un bouton pour charger les photos ca marché mais qu'on je charge la photo elle s'applique pour tout les client mais mon but je veux que chaque client a ca propre photo
    voila le code
    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
    //----------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream.h>
    #include "Unit7.h"
    //----------------------------------------------------------------------------
    #pragma resource "*.dfm"
    TForm7 *Form7;
    int v=0;
    //----------------------------------------------------------------------------
    __fastcall TForm7::TForm7(TComponent *Owner)
        : TForm(Owner)
    {
    }
    //----------------------------------------------------------------------------
    void __fastcall TForm7::FormCreate(TObject *Sender)
    {
        Table1->Open();
    }
    //----------------------------------------------------------------------------
     
    void __fastcall TForm7::DataSource1DataChange(TObject *Sender,
          TField *Field)
    {
    if (FileExists("D:\\mostaf\\image\\"+EditIdmembre->Text+".jpg"))
       DBImage1->Picture->LoadFromFile("D:\\mostaf\\image\\"+EditIdmembre->Text+".jpg");
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm7::BitBtn1Click(TObject *Sender)
    {
     
    AnsiString image;
     if(v!=0)
    {
     Application->MessageBox(" ce contacte à déja une photo!", "         Look        ", MB_ICONEXCLAMATION|MB_OK);
     v=0;
     }
    else if(v==0)
    {
    v=0;
    if (OpenPictureDialog1->Execute())
      {
     
     
        image = OpenPictureDialog1->FileName;
        TLocateOptions Option;
         Option << loCaseInsensitive;
        Table1->Locate("Idmembre",EditIdmembre->Text,Option);
       if(EditIdmembre->Text!="")
       v++;
       DBImage1->Visible=true;
        DBImage1->Picture->LoadFromFile(image);
     
     
       }
      }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm7::BitBtn2Click(TObject *Sender)
    {
    AnsiString image;
    if (SavePictureDialog1->Execute())
      {
        image = SavePictureDialog1->FileName;
        DBImage1->Picture->LoadFromFile(image);
      }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm7::BitBtn3Click(TObject *Sender)
    {
    Form7->Close();
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm7::DBImage1Click(TObject *Sender)
    {
    DBImage1->Picture->OnChange;
    }
    //-----------------------------------------------------------------------

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je n'ai jamais utilisé TDBImage() ni d'ailleurs l'organisation en base de donnée de Borland.
    Mais d'après ce que j'ai lu c'est pas vraiment la classe à utiliser pour stocker une image dans quelque-chose.
    Comment sont stockés les individus?
    Utiliser-vous une base de données?
    Le nom de l'image n'est qu'une donnée ordinaire, comme le nom, prénom etc. C'est aussi un AnsiString, puisque ce n'est pas une image, mais le nom du fichier où elle est stockée.

  5. #5
    Membre actif
    Inscrit en
    Janvier 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 27
    Par défaut
    salut oui j'utilise une base de données et TDBImage c'est juste pour placer l'image comme un cadre parce que mon programme marche sauf que l'image elle s'applique pour tous et moi je veux que chacun à ca propre photo

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    A votre place j'imprimerais le nom du fichier pour voir lequel il va chercher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm7::DataSource1DataChange(TObject *Sender,
          TField *Field)
    {
    if (FileExists("D:\\mostaf\\image\\"+EditIdmembre->Text+".jpg"))
       DBImage1->Picture->LoadFromFile("D:\\mostaf\\image\\"+EditIdmembre->Text+".jpg");
    }
    Que vaut le paramètre Field?
    C'est peut-être de ce côté là qu'il faut chercher.
    Vous pouvez aussi émettre un avertissement si le fichier n'existe pas.

    De toute façon, il vaudrait mieux créer le nom du fichier, puis le traiter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm7::DataSource1DataChange(TObject *Sender,
          TField *Field)
    {
      AnsiString Fic="D:\\mostaf\\image\\";
      Fic+=EditIdmembre->Text;
      Fic+=AnsiString(".jpg");
      if (FileExists(Fic))
         DBImage1->Picture->LoadFromFile(Fic);
      else
         Message("Fichier inexistant");
    }

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut bicha_27
    Je ne pense pas qu'un TDBImage prenne en compte un " .JPG "
    Un extrait de l'aide en ligne
    Description
    Read Picture to obtain the TPicture object that represents the value of the field. Set Picture to programmatically change the value of the graphic field. The property value is a TPicture object which can contain an icon, metafile, bitmap, or other graphic object.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Oui efféctivement, je n'y avais pas pensé.
    Ci dessous un extrait qui lit un fichier JPG
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        else if (!strcmp(LitSuffixe(FondPlan),"JPG") || !strcmp(LitSuffixe(FondPlan),"JPEG"))
        {
          Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
          Bitmap2 = new Graphics::TBitmap();
          Bitmap2->Assign(LitBitmap(FondPlan, Bitmap1));     // Copie Bitmap1 dans Bitmap2
          Bitmap2->Dormant();           // Libère les ressources GDI
          Bitmap2->FreeImage();         // Libère la mémoire.
          delete Bitmap1;
          existBMP=true;
        }
    Bitmap2 est chez moi en global.

    (suite)
    Et la séquence de LitBitmap concernée
    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
        else if ((!strcmp(Suffixe,"JPG") || !strcmp(Suffixe,"JPEG")) &&
                  ent[0]==0xFFFFFFFF && ent[1]==0xFFFFFFD8)
        {
          tfs->Seek(0,soFromBeginning);
          TJPEGImage *jp = new TJPEGImage();
          try
          {
            jp->LoadFromStream(tfs);
            Bmp2->Assign(jp);     // Copie jp dans Bmp2
            Bmp2->Dormant();           // Libère les ressources GDI
            Bmp2->FreeImage();         // Libère la mémoire.
          }
          __finally
          {
            delete jp;
            delete tfs;
          }
        }
    Il y a tellement longtemps que je l'ai fait que je ne m'en souvenais plus.
    Pour mémoire, les actions Assign() etc. ne prennent aucun délai.
    Dernière modification par Invité ; 07/11/2010 à 18h30.

  9. #9
    Membre actif
    Inscrit en
    Janvier 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 27
    Par défaut
    merci

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

Discussions similaires

  1. Comment ajouter une photo à mon profil ?
    Par ghita269 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 18/11/2005, 20h36
  2. Comment insérer une photo
    Par IDE dans le forum Access
    Réponses: 1
    Dernier message: 01/11/2005, 00h30
  3. Réponses: 5
    Dernier message: 13/10/2005, 10h49
  4. [MDI] Comment charger une Form fille au démarrage ?
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 13
    Dernier message: 03/07/2004, 12h40

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