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 :

Créer pour chaque TImage un fichier


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut Créer pour chaque TImage un fichier
    je crée des TImage dynamiquement et j'aimerai leurs assigner des fichiers à l'aide du double clic.
    J'ai réussi à le faire pour une image mais je ne sai pas comment le faire pour le reste.

    Chaque fichier comporte une configuration spécifique de chaque équipement (Timage = PC, FW, Routeur).
    Merci

  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
    Si tu peut donner un peu de code, par exemple, le code pour une image, on y verrai un peu plus clair et on pourrai t'aider pour la multiplicité des images. Merci

  3. #3
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    je déclare mes images comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TImage *Image[eq] = {0};
    puis les traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Image[i] = new TImage(this);
    Image[i]->Parent = Panel1;
     
    Image[i]->OnMouseDown = ImageMouseDown;
    Image[i]->OnMouseMove = ImageMouseMove;
    Image[i]->OnMouseUp   = ImageMouseUp;
    Image[i]->OnDblClick =  ImageDblClick;
     
    Image[i]->AutoSize = true;
    Image[i]->Tag = i;
    Image[i]->Picture->Icon->Assign(host);
    puis j'ai cette fonction qui attache un fichier à chaque image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TFileStream *conf[eq] = {0};
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TForm1::ImageDblClick(TObject *Sender)
    { 
     
    conf[i] = new TFileStream();
       if (OpenDialog1->Execute())
    	{
                    ifstream conf[i](OpenDialog1->FileName.c_str());
     
    	}
    }
    mon pb consiste à rattacher à chaque image (qui représete un routeur ou un FW ) sa config.
    Merci

  4. #4
    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
    Il te manque juste l'identification de l'image sur laquelle tu a double cliqué, ajoute ceci au debut de ta fonction ImageDblClick() : ca devrait fonctionner.

  5. #5
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    l'id de l'mage i est déclarer au début,
    mais rien ne marche

  6. #6
    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
    oui, ce qu'il y a c'est que tu dois stocker chaque fichiers correspondant à chaque images dans le vecteur conf, tu veut donc certainement enregistrer la valeur du fichier de l'image 0 sous l'index 0 du vecteur conf, il faut donc que tu met la bonne valeur de i pour pouvoir enregistrer le fichier sous le bon index, d'ou le bout de code que je t'ai donné precédemment.

  7. #7
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TForm1::ImageDblClick(TObject *Sender)
    { 
     i = Sender->Tag ;
    conf[i] = new TFileStream();
       if (OpenDialog1->Execute())
    	{
                    ifstream conf[i](OpenDialog1->FileName.c_str());
     
    	}
    }
    il y a bq des erreurs.
    je veux énumérer pour chaque fichier son propre fichier.

  8. #8
    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
    Etant donnée que je n'ai pas acces a BCB avant ce soir tres tard, je ferais des tests et je te dis quoi demain.

  9. #9
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    Ok merci
    j'ai fais des tests hier soir et ça ne marche tj pas

  10. #10
    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
    Voila ce que j'ai mis dans la fonction DblClick, cela fonctionne pour moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int i ;
      TImage * inter ;
      inter = (TImage *)Sender ;
     i = inter->Tag ;
     
       if (OpenDialog1->Execute())
        {
                    conf[i] = new TFileStream(OpenDialog1->FileName,fmOpenRead);
     
        }
    En esperant que ca t'ira.

  11. #11
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    Merci ça marche très bien
    jaimerai savoir pkoi comme ça ça ne marche pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ifstream conf[i](OpenDialog1->FileName.c_str());
    et encore merci

  12. #12
    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
    En fait l'objet TFileStream, permet de stocké un fichier, pour cela il faut lui passer le nom du fichier et le mode d'ouverture dans le constructeur lors du new, apres il ouvre le fichier tout seul, c'est pour cela que j'ai remplacé le ifstream par le new.

  13. #13
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    merci
    donc pour lire du fichier aul lieu de mettre " >> " je met fread.

  14. #14
    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
    Tu peut utiliser les fonction Read() et Write() de la classe TFileStream, regarde dans l'aide de BCB pour plus de precision.

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

Discussions similaires

  1. Lecture du fichier ini 1 ligne pour chaque Textbox
    Par kazylax dans le forum VB.NET
    Réponses: 19
    Dernier message: 13/03/2008, 03h59
  2. Réponses: 5
    Dernier message: 06/02/2008, 16h55
  3. [Batch] executer une commande pour chaque fichier d'un répertoire
    Par Louis-Guillaume Morand dans le forum Windows
    Réponses: 4
    Dernier message: 10/12/2007, 18h47
  4. Réponses: 11
    Dernier message: 01/03/2006, 10h32
  5. Réponses: 1
    Dernier message: 17/05/2005, 20h50

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