Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чудеса с OwnerData в ListView -e...

272
12 сентября 2004 года
vladsoft
512 / / 20.08.2000
Всем привет..
Короче нуно было в ListView затолкать данные из DataSet в режиме
ownerdata.
делаю так

Код:

подготовка к заполнению    (делаю к примеру по клику  кнопки)
LV->Columns->Clear();
  TListColumn *NewColumn = NULL;
  AnsiString asCaption;
  for (int idx = 0; idx < ADO->Fields->Count; idx++)
  {
    asCaption = ADO->Fields->Fields[idx]->DisplayLabel;
    if ( asCaption != "hide_this_column")
    {
      NewColumn = LV->Columns->Add();
      NewColumn->Caption = asCaption;
      NewColumn->Width = 120;
      NewColumn->AutoSize=true;
    }
  }

LV->Items->BeginUpdate();
LV->Items->Clear();
LV->OwnerData=true;
// выставлю кол-во строк в ListView -e
ListView_SetItemCountEx(LV->Handle,ADO->RecordCount,LVSICF_NOINVALIDATEALL);
LV->Items->EndUpdate();


обработка события OnData:

Код:

    if (!ADO->Eof) {
    Item->ImageIndex = 0;
    Item->Caption = ADO->Fields->Fields[0]->AsString;

    // ostaljnije kolonki
    for (int idx = 1; idx < ADO->Fields->Count; idx++)
      Item->SubItems->Add(ADO->Fields->Fields[idx]->AsString);
    ADO->Next();
}


А проблема следующая:
всего у меня было 5 записей , 5 раз вызывает cобытие ondata, но отображает
только 2 и 4 запись и 5 на половину, скакал по шагам, из DataSet -та он
все берет правильно, но у себя отражает не правильно...
Что делать, как быть???????
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог