Witam.
Piszę prosty silnik pod gry karciane w C++ Builderze 6 i mam kolejny problemik.
A mianowicie mam klasę Cards, w której jest funkcja:
public:
createCard(int Left,intTop,??)
{
TImage *Karta;
Karta = new TImage(Form1);
Karta->Parent = Form1;
Karta->OnDblClick = ??;
}
I tam, gdzie jest ?? mam problem... Jak to zrobić, aby przekazać funkcję (lub wskaźnik do niej).
Wiem, że trzeba stworzyć:
typedef void (*WSK) (_fastcall *(_closure)(TObject *))(TObject *);
lub po prostu
void (*WSK) (_fastcall *(_closure)(TObject*))(TObject *);
i potem to przekazać:
Cards x;
x.createCards(12,12,WSK);
ale co wpisac w ?? w deklaracji funkcji?
Wiem, że problem jest zawiły, ja mam problemy ze wskaźnikami i że nie umiem perfekcyjnie opisywać problemu.
Dziękuję za pomoc.
PS. Próbowałem już zrobić:
createCard(int Left,int Top, void (*func)(_fastcall *(_closure)(TObject *))(TObject *))
{
//Tu tworzenie TImage
Karta->OnDblClick = &func; //zwykłe func też nic nie daje
}
ale nie pomaga.
createCard(int Left,int Top, void (*func)())
{
//Tu tworzenie TImage
Karta->OnDblClick = &func; //zwykłe func też nic nie daje
}
też nie działa.