Ik ben bezig een progje te brouwen in C++ Builder. Alles gaat prima, maar ik stuit nu op een compiler error waar ik maar niet vanaf geraak.
Bovenstaande is dus een class-definitie. Ik heb een ListView die allerlei instances van deze class weergeeft. In ieder ListItem zit er in de Data property een pointer naar een respectievelijk object van deze class.
Zo dus:
Als ik de gegevens van het geselecteerde ListItem wil gaan accessen, doe ik dit als volgt:
Als ik dit alles compileer, krijg ik op de lijn waar ik cast, volgende compiler error:
Ik heb al in de help gekeken, maar daar ga ik geen oplossing vinden, want de class bevat virtual functions en de class is ook gekend in mijn unit.
Iemand die mij kan helpen?
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
36
37
38
| class TUitgave : public TObject
{
private:
int m_Id;
int m_UserId;
int m_CategorieId;
int m_TypeUitgave;
AnsiString m_Omschrijving;
TDate m_Datum;
Currency m_Bedrag;
AnsiString m_Categorie;
public:
TUitgave();
TUitgave(int, int, int, int, AnsiString, TDate, Currency);
__property int Id = { read = m_Id, write = m_Id };
__property int UserId = { read = m_UserId, write = m_UserId };
__property int CategorieId = { read = m_CategorieId,
write = m_CategorieId
};
__property int TypeUitgave = { read = m_TypeUitgave,
write = m_TypeUitgave
};
__property AnsiString Omschrijving = { read = m_Omschrijving,
write = m_Omschrijving
};
__property TDate Datum = { read = m_Datum,
write = m_Datum
};
__property Currency Bedrag = { read = m_Bedrag, write = m_Bedrag};
__property AnsiString Categorie = { read = m_Categorie,
write = m_Categorie
};
virtual void __fastcall MaakListItem(TListItem*);
}; |
Bovenstaande is dus een class-definitie. Ik heb een ListView die allerlei instances van deze class weergeeft. In ieder ListItem zit er in de Data property een pointer naar een respectievelijk object van deze class.
Zo dus:
code:
1
2
3
| TUitgave* rec; rec = new TUitgave(); ListItem->Data = pointer(rec); |
Als ik de gegevens van het geselecteerde ListItem wil gaan accessen, doe ik dit als volgt:
code:
1
2
3
4
5
| TListItem* SelItem; TUitgave* SelObject; SelItem = ListView->Selected; SelObject = dynamic_cast<TUitgave*>(SelItem->Data); |
Als ik dit alles compileer, krijg ik op de lijn waar ik cast, volgende compiler error:
code:
1
| [C++ Error] UitgaveCal.cpp(70): E2307 Type 'void' is not a defined class with virtual functions |
Ik heb al in de help gekeken, maar daar ga ik geen oplossing vinden, want de class bevat virtual functions en de class is ook gekend in mijn unit.
Iemand die mij kan helpen?
https://fgheysels.github.io/