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

Composants VCL Delphi Discussion :

TRadioButton et image


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut TRadioButton et image
    Salut,

    Voilà j'aimerai faire qque chose de très ambitieux pour mon niveau actuelle ...

    J'ai trois boutons "TRadioButton" et une zone TImage avec un composant non visuel ImageList.

    En faite l'image ne doit pas être la même suivant ce que coche l'utilisateur .....

    J'ai regardé l'aide en ligne, lu plusieur tutorial mais bon c'est trés dur pour un début ...


    Merci vraiment des aides!!!

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Un premier conseil :

    utilise plutôt le composant TRadioGroup plutôt que plusieurs TRadioButton. Tu ajoute 3 lignes dans la propriété Items et tu obtiendra le même résultat.

    Ensuite, pour savoir quel est le RadioButton qui est coché tu utilise :

    Ensuite est ce que tu as beaucoup d'images? Est-ce qu'elles sont lourde? Sinon peut etre est-il envisageable de les charger en cours de programme depuis le disque dur (imaginons un répertoire avec toutes tes images nommées '0.bmp', '1.bmp', ...., 'N.bmp', et selon l'ItemIndex de ton RadioGroup tu charge telle ou telle image).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Picture.LoadFromFile( IntToStr( RadioGroup1.ItemIndex ) + '.bmp' ) ;
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut
    Merci de ton aide sta83

    Voici ce que j'ai essayé de faire .....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    var
    chemin : string;
    begin
    RadioGroup1.ItemIndex:=2 ;
    Case RadioGroup1.ItemIndex of
       0 : Image1.Picture.LoadFromFile( IntToStr( RadioGroup1.ItemIndex ) + '.bmp' ) ;
       1 :
       2 :
     end;
     
    end;

    Le problème est que lorsque je compile le prog on ne voie pas les boutons options.
    Puis il faut bien rentrer le chemin de l'image pour que le prog puisse charger l'image ....

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut
    comme sa cela doit etre mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    begin
    RadioGroup1.ItemIndex:=2 ;
    Case RadioGroup1.ItemIndex of
       0 : Image1.Picture.LoadFromFile('C:\Documents and Settings\utili\Mes documents\Mes images\image.jpeg'  ) ;
       1 :  Image1.Picture.LoadFromFile('C:\Documents and Settings\utili\Mes documents\Mes images\image2.bmp'  ) ;
       2 :Image1.Picture.LoadFromFile('C:\Documents and Settings\utili\Mes documents\Mes images\image3.bmp'  ) ;
     end;
     
    end;
    mais je ne vois tjrs pas comment l'utilisateur peut entre le nombre "2" ou "1" .

  5. #5
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RadioGroup1.ItemIndex:=2 ;
    Tu ne dois pas affecter toi même ItemIndex, sinon tu chargera toujours la même image!


    En admettant que tes images se trouvent dans un répertoire 'Images' qui se trouve dans le même répertoire que ton exécutable :

    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
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    var
    chemin : string;
    fichier : string;
    begin
    //récupératiuon du chemin de l'executable
      chemin = ExtractFilePath( Application.ExeName ) ;
      fichier = chemin + 'Images\' + IntToStr( RadioGroup1.ItemIndex ) + '.bmp' ;
    //test de l'existance du fichier  
      if FileExists( fichier ) then
      begin
        Image1.Picture.LoadFromFile( fichier ) ;
      end ;
     
    end;

    Le problème est que lorsque je compile le prog on ne voie pas les boutons options.
    Est ce que tu as compléter la propriété Items de ton RadioGroup?
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut
    _______________________________________ C'est le néant .......
    (Merci de persévérer pour moi )

    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
     
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    var
    chemin : string;
    fichier : string;
    begin
    RadioGroup1.ItemIndex:=2;
     
    //récupération du chemin de l'executable
      chemin := ExtractFilePath( Application.ExeName ) ;
      fichier := chemin + 'Images\' + IntToStr( RadioGroup1.ItemIndex ) + '.bmp' ;
    //test de l'existance du fichier
      if FileExists( fichier ) then
      begin
        Image1.Picture.LoadFromFile( fichier ) ;
      end ;
     
    end;

    Le prog s'exécute mais lorsque je clique sur la zone TRadioGroup : rien ne se passe.. (j'ai bien ajouté le composant TImage avec Name:Image1)

  7. #7
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    enlève cette ligne qui ne sert a rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RadioGroup1.ItemIndex:=2;
    Sinon se sera toujours l'image 2 qui sera chargée!
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut
    oui excuse moi j'ai oublié de l'enlevez; mais bon voici 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
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    var
    chemin : string;
    fichier : string;
    begin
    case RadioGroup1.ItemIndex of
        0:
     begin
    //récupération du chemin de l'executable
      chemin := ExtractFilePath( Application.ExeName ) ;
      fichier := chemin + 'Images\' + IntToStr( RadioGroup1.ItemIndex ) + '.bmp' ;
    //test de l'existance du fichier
      if FileExists( fichier ) then
      begin
        Image1.Picture.LoadFromFile( fichier ) ;
      end ;
    end;
        1: showmessage('a');
    end;

    Lorsque je coche la case 2 j'ai bien le message 'ah' Sinon lorsque je coche la 1 j'ai rien qui ne s'affiche.............
    D'où peut venir se problème ~~ ??

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Est-ce que le fichier 0.bmp existe bien dans le sous-dossiers Images ?
    Ajoute un else au if FileExists() pour afficher un message dans le cas contraire.

    @+ Claudius

  10. #10
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Met des points d'arrêts dans ta fonction, et exécute en pas à pas (F8) pour avancer ligne après ligne dans ton programme.

    Ainsi tu pourra voir les valeurs de chaque paramètre et vérifier qu'elles ont des valeurs correcte.

    Vérifie également que tu passe dans le test (et donc que le fichier existe bien). N'oublies pas que les ItemIndex commence a zéro et non à 1. Donc ton premier bouton aura l'ItemIndex 0, ton 2nd l'ItemIndex 1, etc... Vérfie également que tu as bien une image appelée '0.bmp'.

    Autre question pourquoi utilise un caseof?
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  11. #11
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut
    Toutes mes plates excuses ............................
    Jm'étais trompé de répertoire .............


    Et puis j'ai également comprit pourquoi il ne fallai pas utiliser de case..of

    Mer

    +

  12. #12
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par Napala Voir le message
    Et puis j'ai également comprit pourquoi il ne fallai pas utiliser de case..of
    Et pourquoi ne pas l'utiliser ? Très pratique pourtant.

  13. #13
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Et pourquoi ne pas l'utiliser ? Très pratique pourtant.
    Parce que d'après la question qu'il posait, le case of n'apportais rien.

    Si par contre NAPALA, tu souhaite effectuer des actions différentes en fonction du radiobutton qui est coché, là tu peux utiliser le case of.

    .
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  14. #14
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Image1.Picture.Bitmap := Nil;
      ImageList.GetBitmap(radiobutton1.itemIndex,Image1.Picture.Bitmap)
    @+Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  15. #15
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 27
    Points : 17
    Points
    17
    Par défaut Ajout balises
    Citation Envoyé par anapurna
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Image1.Picture.Bitmap := Nil;
      ImageList.GetBitmap(radiobutton1.itemIndex,Image1.Picture.Bitmap)


    Salut
    anapurna,

    ton code m'intéresse:
    si j'ai bien comprit dans la premier ligne tu di qu'il y a que dalle dans ton composant image1
    Puis dans la seconde ligne tu ajoute au composant "ImageList" l'image qu'à choisi l'utilisateur via le bouton ?

  16. #16
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    salut


    le Timagelist est un composant non visuel ayant plusieurs images en sont sein
    le seul truc c'est que je lui demande d'affecter l'image numero x
    au TIMAGE pose sur ta fiche

    je n'ajoute rien dans le timaglist
    pour cela il faut passer par le add du timagelist

    @+ phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. Resize d'une image
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 13/07/2008, 22h23
  2. recherche des algorythmes pour images 2d
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/05/2002, 13h46
  3. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44
  5. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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