Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Клиенское окно, Проблемы с наследованием 
:(
    Опции темы
umnick
Дата 12.5.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 4.5.2008
Где: Кривой Рог

Репутация: нет
Всего: 0



файл main.cpp
Код



#include "ot1.cpp"

class TMyApp : public TApplication

{

public:

    TMyApp():TApplication()

{}

void InitMainWindow()

{

    EnableCtl3d();
    MainWindow=new TMyWindow("Êîîðäèíàòû ìûøè");

}

};





int OwlMain(int, char *[])

{
    TMyApp app;
    return app.Run();
}


файл ot1.cpp

Код


#include <owl\applicat.h>
#include <owl\framewin.h>
#include <owl\dc.h>
#include "ot1.rh"
//#include "client.cpp"

class TMyWindow : public TFrameWindow

{

public:
    TWindow* client1;
    int x,y;  int m;
   void CmClose();
   void CmRun();
   void CmSet();
   TMyWindow::~TMyWindow();
    TMyWindow(char *title):TFrameWindow(0,title)
{
    AssignMenu(IDM_MENU1);
}

protected:
    void EvLButtonDown(UINT,TPoint&);
    void EvRButtonDown(UINT,TPoint&);
    void Paint(TDC& dc, bool , TRect&);
    DECLARE_RESPONSE_TABLE(TMyWindow);
};

DEFINE_RESPONSE_TABLE1(TMyWindow,TFrameWindow)
   EV_COMMAND(CM_CLOSE,CmClose),
   EV_COMMAND(CM_RUN,CmRun),
   EV_COMMAND(CM_SET,CmSet),
    EV_WM_LBUTTONDOWN,
    EV_WM_RBUTTONDOWN,
END_RESPONSE_TABLE;

TMyWindow::~TMyWindow()
{

};

void TMyWindow::EvLButtonDown(UINT,TPoint& p)
{
    char st[10];
    itoa(p.x, st,10);
    MessageBox(st,"êîîðäèíàòû Õ");
   x=p.x;
   y=p.y;
   TWindow::Invalidate(false);
   m=1;
}

void TMyWindow::EvRButtonDown(UINT,TPoint& p)

{
    char st[10];
    itoa(p.y, st,10);
    MessageBox(st, "êîîðäèíàòû Ó");
   x=p.x;
   y=p.y;
    TWindow::Invalidate(false);
    m=2;
}

void TMyWindow::Paint(TDC& dc, bool , TRect&)
{
   //ðèñîâàíèå ñåòêè
    for (int i=1; i<5; i++)
   {
      dc.MoveTo(i*100+200,0);
    dc.LineTo(i*100+200,1000);
   }

   for (int i=1; i<5; i++)
   {
      dc.MoveTo(0,i*100+100);
    dc.LineTo(1000,i*100+100);
   }
   if (m==1)
   //ðèñîâàíèå êðåñòèêà
   {
   dc.MoveTo(x+10,y-10);
   dc.LineTo(x-20,y+20);

   dc.MoveTo(x-20,y-20);
   dc.LineTo(x+20,y+20);
   }
   if (m==2)
   //ðèñîâàíèå íîëèêà
   {
   dc.Ellipse(x, y, x+20,y+20);
   }
}
//****ìåíþ***********************
void TMyWindow::CmClose()
{
   TWindow::CloseWindow();
}

void TMyWindow::CmRun()
{
    x=-100;
    y=-100;
    Invalidate();

}

void TMyWindow::CmSet()
{
      client1 = new TClientWin1;
     SetClientWindow(client1);
}




файл client.cpp

Код


#include "ot1.cpp"

class TClientWin1: public TWindow {
public:
    TClientWin1() : TWindow(0, "")
    {
       Attr.Style|=WS_CHILD;
    }
protected:
  void Paint(TDC& dc, bool erase, TRect& r);
};


void
TClientWin1::Paint(TDC& dc, bool /*erase*/, TRect& /*r*/)
{
  dc.TextOut(10, 10, (const char far*)"Client Number 1");
}




ошибки:
 
Цитата


     Error:  OT1.CPP(111,30):Type name expected (client1 = new TClientWin1;)
     Error:  OT1.CPP(111,13):Cannot convert 'int *' to 'TWindow *' (client1 = new TClientWin1;)
     Error:  OT1.CPP(111,30):Statement missing ; (client1 = new TClientWin1;)


Вродебы все правильно а только чете не работает
PM MAIL   Вверх
xvr
Дата 13.5.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



У тебя тип TClientWin1 описан внутри файла client.cpp который никаким боком не виден в месте, где проявляется ошибка. И вообще, надо брать за правило описания слассов помещать в .h файлы и включать их в .cpp файлы, где эти типы используются, а не заниматься включением .cpp файлов друг в друга  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.