Jak przypisac zdarzenie... ?

0

Zaluzmy, ze tworze sobie dynamicznie Memo i chcialbym przypisac zdarzeniu np.: Memo->OnKeyDown jakas procedurke.
Zwykle przypisanie w stylu:

Memo->OnKeyDown = Jakas _procedurka();

nie dziala... niestety nie wszystko w C++ jest takie podobne do Delphi, z ktorego sie wlasnie przerzucam. Jak mam to zrobic ???

0

Memo->OnKeyDown = Jakas _procedurka();

Memo->OnKeyDown = Jakas_procedurka;
bez () podajesz sama nazwe funkcji, czyli jej adres.

0

Hm... chodzi mi o to, zeby ktos podal mi dokladnie do tego przykladu jak zadeklarowac procedure obslugujaca to zdarzenie i jak ja przypisac.
Wiem, ze deklarujac taka procedure trzeba zadeklarowac ja z takimi samymi parametrami jakie zwraca to zdarzenie. Podam przyklad z Delphi. Zeby przypisac zdarzeniu OnKeyDown procedurke musi ona wygladac tak:

procedure Jakas_Nazwa(Sender: TObject; var Key: Word; Shift: TShiftState);

Musi ona miec odpowiednie parametry. Potem juz tylko przypisujemy ja zdarzeniu:

Memo.OnKeyDown := Jakas_Nazwa;

I wszystko gra. Teraz jak zrobic to samo w C++ Builderze ???

0

void __fastcall funkcja_do_podpiecia(TObject *Sender, WORD &Key,
TShiftState Shift);

Memo->OnKeyDown = funkcja_do_podpiecia;

0

KRzych - a sprawdzales czy to aby na pewno bedzie dobre ?
Prubowalem juz w ten sposob robic... niestety nie dziala. Kompilator wywala mi przy przypisaniu blad:

Cannot convert 'void (__fastcall*)(TObject*,unsigned short &, TShoftState)'
to
'void (__fastcall*(__closure)(TObject*,unsigned short &, TShiftState))(TObject*,unsigned short, TShiftState)'

Cos mi mowi, ze to wcale nie jest trudne :-/
Tak czy siak dzieki za checi.

0

hmm.. u mnie działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1