Récupérer le contenu d'un checklistbox c++ builder

yuka_605 Messages postés 15 Date d'inscription mercredi 15 décembre 2004 Statut Membre Dernière intervention 3 février 2005 - 3 févr. 2005 à 11:50
yuka_605 Messages postés 15 Date d'inscription mercredi 15 décembre 2004 Statut Membre Dernière intervention 3 février 2005 - 3 févr. 2005 à 23:39
salut à tous
je voudrais savoir comment on récupère la valeur d'un checklistbox lorsque la case est cochée.. avec c++ builder 6.
Ce que je voudrais faire c'est la meme chose que
CheckListBox1->CopySelection(ListBox1);
sauf que ici il me le copie sans avoir coché la case, le fait de le mettre en surbrillance suffit pour le copier. Mais moi je veux copier seulement ceux qui ont été coché.

En bref ce qu'il doit faire:
checklistBox->case cochée->alors je copie le texte associé

5 réponses

Dvdmizo Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 3 mai 2006
3 févr. 2005 à 15:54
salut,



voici un petit exemple qui copie tous les elements selectionnés d'une CheckListBox dans une ListBox.



void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

int i ;

ListBox1->Items->Clear() ;

for(i=0 ; i < CheckListBox1->Items->Count ; i++)

{

if(CheckListBox1->Checked[i])

{

ListBox1->Items->Add(CheckListBox1->Items->Strings[i]) ;

}

}

}


j'espère que ça répondra à ta question.


DvdMizo
0
yuka_605 Messages postés 15 Date d'inscription mercredi 15 décembre 2004 Statut Membre Dernière intervention 3 février 2005
3 févr. 2005 à 17:05
je te remercie beaucoup DvdMizo
ton code marche très bien, il fait meme les controles que j'essayai de faire (doublon dans la listbox,supprimer les ceux qui ont été décoché..).
Maintenant je passe à un stade au dessus, je vais essayer de copier ca dans un fichier .txt au lieu de la listbox.
mais je vois pas comment manipuler le fichier .txt à ce moment là. si tu pourrais aussi m'eclairer un peu la dessus ce serait gentil.
0
Dvdmizo Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 3 mai 2006
3 févr. 2005 à 17:24
on va repartir plus ou moins du même modèle.



void __fastcall TForm1::BitBtn2Click(TObject *Sender)

{

int i ;

FILE *pointeur_fichier ;



// on ouvre le fichier avec fopen

// il faut inclure le fichier <stdio.h>

pointeur_fichier = fopen("sortie.txt", "wt") ;



if(pointeur_fichier == NULL) // l'ouverture a échoué

{

Application->MessageBoxA("Impossible
d'ouvrir le ficher 'sortie.txt'", "Erreur", MB_ICONSTOP|MB_OK) ; // on
averti l'utilisateur

return ; // et on quitte la fonction

}

for(i=0 ; i < CheckListBox1->Items->Count ; i++)

{

if(CheckListBox1->Checked[i])

{


fprintf(pointeur_fichier, "%s\n",
CheckListBox1->Items->Strings[i].c_str() ; // le '.c_str()'
renvoie le contenu d'un AnsiString sous forme d'un char *

}

}

fclose(pointeur_fichier) ; // on ferme le fichier

}


voilà ... la prochaine étape serait peut-être d'utiliser un un
SaveDialog pour demander à l'utilisateur le nom du fichier à utiliser
pour la sortie...



j'espère t'avoir aidé un peu plus ...


DvdMizo
0
Dvdmizo Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 3 mai 2006
3 févr. 2005 à 17:26
oops je viens de me rendre compte qu'il manque une parenthèse à la fin de la ligne suivante :



fprintf(pointeur_fichier, "%s\n", CheckListBox1->Items->Strings[i].c_str()) ;

DvdMizo
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yuka_605 Messages postés 15 Date d'inscription mercredi 15 décembre 2004 Statut Membre Dernière intervention 3 février 2005
3 févr. 2005 à 23:39
merci beaucoup , surtout pour les commentaires...Je vais essayer ca ..
0
Rejoignez-nous