У меня есть список указателей на объекты, являющиеся структурами:
Код | struct GAN { int Npp; TDate D; AnsiString prefix; AnsiString number; ....... };
TList *source; GAN *x;
for(i=0;i<k;i++) { ........ //заполняем x
source->Add(x); }
|
Чтобы отобразить его на форме использую компоненту ListView (ViewStyle = vsReport). Заполняю его так:
Код | void *v;
view->Clear(); for(i = 0;i < source->Count;i++) { ListItem = view->Items->Add(); v = list->Items[i]; g = (GAN*)v; ListItem->Caption = g->Npp; ListItem->SubItems->Add(g->D); ListItem->SubItems->Add(g->prefix); ListItem->SubItems->Add(g->number); ... }
|
Отображается всё как надо. Содержимое в ListView может сортироваться по любому столбцу. Теперь такая проблема: нужно при выборе строки в ListView определить соответствующий ему элемент в исходном списке source. Пробовал так:
Код | void __fastcall TForm1::ViewSource1SelectItem(TObject *Sender, TListItem *Item, bool Selected) { int r;
r = source->IndexOf(Item); .... }
|
Однако r всегда равно -1. Кто-нибудь подскажите, как решить проблему |