Ĺadny brzuch
Poprawiłem ten post:
Mam obiekt kolko typu TShape tworzony dynamicznie. No i piszę:
kolko->OnContextPopup=Shape1ContextPopup;
Mam także funkcję
void __fastcall Shape1ContextPopup(TObject *Sender, TPoint &MousePos, bool Handled); //w prototypie klasy plik h void __fastcall TWezel::Shape1ContextPopup(TObject *Sender, TPoint &MousePos, bool Handled){ //w pliku cpp tagPoint kur; GetCursorPos(&kur); Drzewo->MenuRozwijane->Popup(kur.x,kur.y);
}
No i przy próbie kompilacji mam błąd:
[C++ Error] wezelClass.cpp(23): E2034 Cannot convert 'void (_fastcall * (_closure )(TObject *,TPoint &,bool))(TObject *,TPoint &,bool)' to 'TContextPopupEvent'
Parametry funkcji wziąłem z normalnie utworzonego shape i z tego zdarzenia, dlatego dziwi mnie ten błąd. Ponadto podpinałem już inne zdarzenia pod ten obiekt np.
void __fastcall KolkoMouseMove(TObject *Sender, TShiftState Shift,int X, int Y); void __fastcall KolkoMouseEnter(TObject *Sender); void __fastcall KolkoMouseLeave(TObject *Sender); void __fastcall TWezel::KolkoMouseMove(TObject *Sender, TShiftState Shift,int X, int Y) { tagPoint kur; GetCursorPos(&kur); DaneWezla->Left = kur.x+5; DaneWezla->Top = kur.y+5; } void __fastcall TWezel::KolkoMouseEnter(TObject *Sender) { //Drzewo->TDrzewo::Label1->Caption=IntToStr(i); //i++; //DaneWezla->Visible=true; tagPoint kur; DaneWezla->Show(); //DaneWezla->Left = 200; //DaneWezla->Top = 200; //DaneWezla->Left = kolko->Left-DaneWezla->Width; //DaneWezla->Top = kolko->Top-DaneWezla->Height; GetCursorPos(&kur); DaneWezla->Left = kur.x+5; DaneWezla->Top = kur.y+5; } void __fastcall TWezel::KolkoMouseLeave(TObject *Sender) { DaneWezla->Close(); } DaneWezla->Close(); }
I ten kod działa doskonale.
Co więc robię źle w zdarzeniu OnContextPopup, że nie działa?
Użytkownik kzez1986 edytował ten post 28 marzec 2008, 10:07
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam obiekt kolko typu TShape tworzony dynamicznie. No i piszę:
kolko->OnContextPopup=Shape1ContextPopup;
Mam także funkcję
void __fastcall Shape1ContextPopup(TObject *Sender, TPoint &MousePos, bool Handled); //w prototypie klasy plik h void __fastcall TWezel::Shape1ContextPopup(TObject *Sender, TPoint &MousePos, bool Handled){ //w pliku cpp tagPoint kur; GetCursorPos(&kur); Drzewo->MenuRozwijane->Popup(kur.x,kur.y);
}
No i przy próbie kompilacji mam błąd:
[C++ Error] wezelClass.cpp(23): E2034 Cannot convert 'void (_fastcall * (_closure )(TObject *,TPoint &,bool))(TObject *,TPoint &,bool)' to 'TContextPopupEvent'
Parametry funkcji wziąłem z normalnie utworzonego shape i z tego zdarzenia, dlatego dziwi mnie ten błąd. Ponadto podpinałem już inne zdarzenia pod ten obiekt np.
void __fastcall KolkoMouseMove(TObject *Sender, TShiftState Shift,int X, int Y); void __fastcall KolkoMouseEnter(TObject *Sender); void __fastcall KolkoMouseLeave(TObject *Sender); void __fastcall TWezel::KolkoMouseMove(TObject *Sender, TShiftState Shift,int X, int Y) { tagPoint kur; GetCursorPos(&kur); DaneWezla->Left = kur.x+5; DaneWezla->Top = kur.y+5; } void __fastcall TWezel::KolkoMouseEnter(TObject *Sender) { //Drzewo->TDrzewo::Label1->Caption=IntToStr(i); //i++; //DaneWezla->Visible=true; tagPoint kur; DaneWezla->Show(); //DaneWezla->Left = 200; //DaneWezla->Top = 200; //DaneWezla->Left = kolko->Left-DaneWezla->Width; //DaneWezla->Top = kolko->Top-DaneWezla->Height; GetCursorPos(&kur); DaneWezla->Left = kur.x+5; DaneWezla->Top = kur.y+5; } void __fastcall TWezel::KolkoMouseLeave(TObject *Sender) { DaneWezla->Close(); } DaneWezla->Close(); }
I ten kod działa doskonale.
Co więc robię źle w zdarzeniu OnContextPopup, że nie działa?
Użytkownik kzez1986 edytował ten post 28 marzec 2008, 10:07