Zugriff auf Vector einer Klasse mit Aufruf einer Methode
-
Hi zusammen,
Ich würde gerne eine Methode aufrufen, sobald Daten eines Vectors in einer Klasse geändert werden.
Mit
__property int RowCount = {read=_RowCount,write=SetRows};
funzt das auch ganz gut.
Jetzt würde ich das ganze auch gern mit dem Vector machen.
public: vector<vector<AnsiString> > Cells;
Wenn es Alternativen gibt, damit ich mitbekomme, sobald im vector Daten verändert werden, nehme ich die auch gern!
THX
-
Du kannst auch indizierte Properties definieren.
Ungetestet:
#include <vector> class MyClass { std::vector<std::vector<int> > Cells_; public: __property int Cells[unsigned int][unsigned int] = { read=get_cell, write=set_cell }; private: int get_cell( unsigned int Row, unsigned int Col ) const { return Cells_[Row][Col]; } void set_cell( unsigned int Row, unsigned int Col, int Value ) { Cells_[Row][Col] = Value; } };
Edit:
Fehlenden Rückgabetyp für __property Definition ergänzt
-
Supi, funzt mit int ganz gut!
Aber ich bekomme Ärger mit:
std::vector<std::vector<AnsiString> > Cells_; __property AnsiString mmCells[int Row][int Col] = { read=get_cell, write=set_cell };
Error: E2347
Gibts für unterschiedliche parameter ->int in AnsiString->raus auch eine Lösung?
-
Hatte leichtsinnsfehler gemacht!
Funzt supi, THX