D�clarer et Utiliser un TListItems
Bonjour,
Je cherche � "filtrer" mes donn�es dans un TListView. N'ayant pas trouv� les fonctions Show et Hide pour une ligne (ni le Visible) j'ai d�cid� de faire un delete des lignes non voulues.
Pour revenir � la configuration initiale (avant les delete) j'ai voulu cr�� un ListItems sauvegardant mes lignes et le r�utiliser pour tout recharger.
Le probl�me est que je n'arrive pas � cr�er ce TListItems (le S est important)
D�s que j'ajoute un item, j'ai une exception.
Code:
1 2
|
TListItems* AllDecodedFrameList; |
La m�thode new me met une erreur de compilation.
Est ce que quelqun connait la mani�re de proc�der?
Au passage, si mon id�e de filtrage par delete choc, je suis � l'�coute d'autres propositions?
Merci
Vive les Struct et les TList....!
Salut Bandit Boy,
Je finissais par croire que tu avais disparu...
Une autre solution, avec un Struct et une TList
Dans le .h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
//en amont de la déclaration de la TForm :
typedef struct AListv
{
String ACaption;
String ASubItemA;
String ASubItemB;
}TAlistv;
//et dans le private de la TForm:
private: // Déclarations de l'utilisateur
TList* AList;
bool RestoreList;
TAlistv *AStruct; |
Dans le .cpp:
Code:
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
|
void __fastcall TForm7::ListView1CustomDrawItem(TCustomListView *Sender,
TListItem *Item, TCustomDrawState State, bool &DefaultDraw)
{
if (RestoreList == false)
{
if (Item->Caption.operator ==("Nom 3"))
{
AStruct = new TAlistv;
AStruct->ACaption =Item->Caption;
AStruct->ASubItemA = Item->SubItems->Strings[0];
AStruct->ASubItemB = Item->SubItems->Strings[1];
AList->Add(AStruct);
ListView1->Items->Delete(Item->Index);
}
}
}
//et pour restaurer :
void __fastcall TForm7::Button8Click(TObject *Sender)
{
RestoreList = true;
TListItem* pItem;
for (int i = 0; i < AList->Count; i++)
{
AStruct = (TAlistv*)AList->Items[i];
pItem = ListView1->Items->Add();
pItem->Caption = AStruct->ACaption;
pItem->SubItems->Add(AStruct->ASubItemA);
pItem->SubItems->Add(AStruct->ASubItemB);
}
AList->Clear();
}
//évidememnt faut avoir déclarer qq part en amont :
AList = new TList();
RestoreList = false; |
@ + ;)
//edit : j'aurais du y penser avant...:roll: