tvs_spb |
Отправлено: 23.08.2004, 12:36 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Есть объект класса,наслед. от TADOQuery:
TAccessDb *lpDataBase;
lpDataBase = new TAccessDb(Application);
Есть итем в ListView куда этот объект надо запихать а потом достать:
TListItem *li;
li = ListView->Items->Add();
int Count = ListView->Items->Count;
li->Caption = IntToStr(Count)+". ";
li->SubItems->AddObject((TObject*)lpDataBase);
подозреваю,что уже здесь он не помещается
А когда достаю:
TAccessDb * lpdb;
lpdb=(TAccessDb*)ListView->Selected->Data;
там NULL....
|
|
MDM |
Отправлено: 23.08.2004, 14:18 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 23
|
QUOTE (tvs_spb @ 23/08/2004, 13:38) | Есть объект класса,наслед. от TADOQuery:
TAccessDb *lpDataBase;
lpDataBase = new TAccessDb(Application);
Есть итем в ListView куда этот объект надо запихать а потом достать:
TListItem *li;
li = ListView->Items->Add();
int Count = ListView->Items->Count;
li->Caption = IntToStr(Count)+". ";
li->SubItems->AddObject((TObject*)lpDataBase);
подозреваю,что уже здесь он не помещается
А когда достаю:
TAccessDb * lpdb;
lpdb=(TAccessDb*)ListView->Selected->Data;
там NULL.... |
Правильно подозреваешь потому, что в ListView->Selected->Data Ты ничего не помещаешь.
А это точно компилится?
li->SubItems->AddObject((TObject*)lpDataBase);
SubItems- св-во типа:
__property Classes::TStrings* SubItems
у TStrings есть метод AddObject(const AnsiString S, System::TObject* AObject), а такого нет AddObject(TObject* AObject):
где первый параметр?
Ладно может опечатка, тогда доставай так
TAccessDb * lpdb;
lpdb=(TAccessDb*)ListView->Selected->SubItems->Objects[Index];
Ну а почему просто не сделать
TListItem *li;
li = ListView->Items->Add();
li->Data = (TObject*)lpDataBase;
или нужно хранить данные для каждого SubItem-a? |
|
Doga |
Отправлено: 23.08.2004, 14:26 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Это прямо как в анекдоте — искать не там, где потерял а там, где светлее
Вы пытаетесь засунуть свой объект в SubItems, а достать его хотите из Data! Конечно же там ничего не будет! К тому же SubItems не предназначен для хранения каких либо объектов отличных от TStrings:
__property Classes::TStrings* SubItems = {read=FSubItems, write=SetSubItems};
Что бы достать что либо из Data, надо сначала туда это "что либо" положить!
CODE |
li->Data = (void *)lpDataBase;
|
Вы что думаете, когда фокусник достаёт кролика из пустого ящика, там действительно до этого ничего не было? Ах, он Вам показывал?
Вы просто не так смотрели!!!
|
|
|