| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Компилятор не видет фуннкцию |
| Автор: reddevel 3.3.2005, 12:23 |
| Есть class TFormObject { public: TImage *pict; void OnMD(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void OnMM(TObject *Sender, TShiftState Shift, int X, int Y); void OnMU(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); }; описан в Unit1.h #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int X0,Y0; bool move=false; void TFormObject::OnMD(TObject *Sender, TMouseButton Button, TShiftState Shift, int X,int Y) {if (Button !=mbLeft) return; X0=X; Y0=Y; move=true; ((TControl*)Sender)->BringToFront(); }; //-------------------------------------------- void __fastcall TForm1::ToolButton1Click(TObject *Sender) { TFormObject obj; if(ComboBox1->ItemIndex==0) { obj.pict= new TImage(Form1); obj.pict->Picture->LoadFromFile("pict//ico_1//krivo.ico"); obj.pict->Parent= Form1; obj.pict->AutoSize=true; obj.pict->Left=15; obj.pict->Top=40; obj.pict->Show(); obj.pict->OnMouseDown=OnMD; }; почему компилятор ругается на строчку obj.pict->OnMouseDown=OnMD; А ругается вот так: Undefined symbol 'OnMD' |
| Автор: Adil' 3.3.2005, 12:47 |
| obj.pict->OnMouseDown=obj.OnMD; Добавлено @ 12:49 И в данном случае, я бы не рекомедовал создавать obj на стеке: TFormObject obj; |
| Автор: reddevel 3.3.2005, 13:11 | ||
obj.pict->OnMouseDown=obj.OnMD; - пробывал не работает при вводе obj. выпадает список в котором только переменна pict и не более того! на сколько я понимаю после = надо поставить указатель на адрес памяти функции OnMD но как это сделать я не понимаю все методы (.*,&,&&,->,->*) перепробывал не помогает, и при некоторых попытках говорит что не может конвертировать "инт" в "воид" ?! а по поводу TFormObject obj; был вариант TFormObject call; - да при таком подходе результат остается неизменным!!!! |
| Автор: Adil' 3.3.2005, 14:45 | ||||||
просто ты еще и __fastcall забыл:
|
| Автор: reddevel 3.3.2005, 16:42 | ||||||||
пасибо огронмное __fastcall все вылечил |