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 :

Mettre des image dans un TIMageList


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par d�faut Mettre des image dans un TIMageList
    Bonjour
    Avec ce code code j'arrive enfin a lire un flux blob (image bmp)
    Comment placer ce flux dans un collection d'image (TImageList)

    Me donn�es viennent de requ�te SQL ou il peut y avoir plusieurs champ image
    comment d�clarer ce composant ?

    Comment afficher les images faut en plus un autre composant TImage ouTDbImage ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    TStream  *pStlu=pDs->CreateBlobStream(pDs->Fields->Fields[i],bmReadWrite);   
     // on lit dans le memoire
     TMemoryStream *pMs =new TMemoryStream;
     pMs->LoadFromStream(pStlu);
     
     j++;
     pMs->SaveToFile("TEST"+IntToStr(j)+".bmp");
    delete pMs;
    merci par avance

  2. #2
    Membre �clair�
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par d�faut
    Le code suivant n'est pas complet, c'est une piste qu'il faut l'adapter � votre code.

    .h
    .cpp
    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
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    listimg = new TList();
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormDestroy(TObject *Sender)
    {
    while (listimg->Count > 0)                // parcours de toute la liste d'image pour la vider
          {
          delete (TImage *)listimg->Items[0]; // libération de la mémoire allouée aux images
          listimg->Delete(0)                  // suppression du pointeur de l'image traité de la liste
          }
    delete listimg;                           // libération de la mémoire allouée à la liste d'image
    }
    Et ensuite dans votre code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    TStream  *pStlu=pDs->CreateBlobStream(pDs->Fields->Fields[i],bmReadWrite);
    TImage *imgtemp = new TImage(0);
    listimg->Add(imgtemp);                    // Sauvegarde du pointeur pour accéder à l'objet plus tard et pouvoir le supprimer
    imgtemp->Parent = Form1;                  // Remplacer par l'objet sur lequel il va être affiché
    imgtemp->Picture->Bitmap->LoadFromStream(pStlu); // chargement de l'image depuis de stream (valable pour un bmp)

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par d�faut
    Bonjour
    je compte stocker le pointeur sur le memorystream
    est ce que cela va prendre beaucoup en ressource syst�me ?
    (il y aura pas d'image par la suite....)

    Est ce mieux d'utiliser Tlist ou TlistImage ?

    Concernant le blob je compte a voir de blobl teste et blob image
    est ce que il y a unn moyen de detecter "la nature" du contenu
    d'un blob ?

    merci encore

  4. #4
    Membre �clair�
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par d�faut
    Pour toutes ces questions, je n'ai aucune r�ponse claire � vous donner, je ne sais pas.

    Je pense que cela d�pend du nombre d'images et de leur poids. (pour les ressources)

    Le TList a l'avantage de pouvoir stocker n'importe quel pointeur. Je n'ai jamais utiliser le TImageList, si cette liste permet de stocker et manipuler les images, il faut le prendre, sinon, le TList est suffisant. Surtout si les images ne doivent plus �tre affich�es par la suite.

    Pour le type de blob, v�rifiez le d�but du flux. Il me semble qu'un fichier BMP commence par une suite bien d�finie (vraiment pas sur) et je ne sais pas si cette partie est stock�e dans le blob.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par d�faut
    Bonjour et merci de votre aide.

    J'ai un probl�me initialisation , je risque d'avoir plusieurs image sur une ligne d'enregistrement

    D'ou le d�claration d'un tableau de TList
    Les dimensions ne seront connues qu'au moment de l'ex�cution de la requ�te
    SQL

    Cette initialisation sera dans la m�thode ToCache(...)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    TList **TabList;
    TabList[0]=new TList;
    J'ai un probl�me de violation

    du coup de prototype de ma proc�dure ressemblerais a ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    bool __fastcall TIbSgbd::ToCache(TIBClientDataSet * pCache, TIBQuery * pQuery,TList **TabList,int *Dim1)
    IBClientDataSet * pCache =le cahce pour le donn�e

    TIBQuery * pQuery sour ce de ma requ�te SQL

    TList **TabList Tableau de liste d'image allou�es via memorytream
    dans la proc�dure

    int *Dim1 param�tre entre/sortie donnant le nombre de liste

    Dim2 a mon avis n'est pas neccesaire vu qu'il ya la methode count()

    Comment bien initialiser mon tableau de liste ?
    Comment appeler au niveau de la m�thode ToCache() TList** ?
    et bien desallouer?

    en vous remerciant encore

  6. #6
    Membre �clair�
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par d�faut
    Ca en peut pas fonctionner. D�ja, TList sert � g�rer une liste, je ne comprend pas l'utilit� de s'en faire un tableau.

    Ensuite, on n'utilise pas de cette mani�re un TList.
    Votre code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    TList **TabList;
    TabList[0]=new TList;
    La syntaxe est plut�t de la forme :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    TList *TabList = new TList(); // ne pas oublier "()"
    TList *temp = new TList();
    TabList->Add(temp);
     
    Et pour y accéder : (TList *)TabList->Items[0];

Discussions similaires

  1. [D6] Mettre des PNG dans un TImageList
    Par fab56 dans le forum Delphi
    R�ponses: 4
    Dernier message: 02/03/2007, 19h12
  2. Mettre des images dans une liste d�roulante
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 1
    Dernier message: 01/12/2006, 15h35
  3. Mettre des images dans une base
    Par ecarbill dans le forum Access
    R�ponses: 4
    Dernier message: 22/08/2006, 15h59
  4. [Debutant] Mettre des images dans une Toolbar
    Par Beleim dans le forum Windows
    R�ponses: 11
    Dernier message: 02/03/2006, 23h31
  5. Possibilit� de mettre des images dans un DrawGrid?
    Par tactical dans le forum C++Builder
    R�ponses: 8
    Dernier message: 11/07/2005, 17h38

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