Не могу активировать методы Mousedown и Mouseup

Тема в разделе "Общие вопросы по С и С++", создана пользователем Maycal, 29 сен 2007.

Статус темы:
Закрыта.
  1. Maycal

    Maycal Гость

    Доброе время суток уважаемые программисты. В данный момент я по самоучителю изучаю C++ и застрял на создание круглой кнопки.
    Проблема заключается в том, что я не могу вызвать методы MouseDown и MouseUp.
    Цель программы такова: после нажатия на круглую кнопку контур эллипса становиться более жирным, вследствии чего создаеться впечетление о нажатой кнопки. Чтобы вызвать метод "ожирнения" контурной линии я использую методы MouseDown и MouseUp. Обявления в заголовочном файле выглядят следующим образом:
    protected:
    virtual void __fastcall MouseDown(TMouseButton Button,
    Classes::TShiftState Shift, int X, int Y);
    virtual void __fastcall MouseUp(TMouseButton Button,
    Classes::TShiftState Shift, int X, int Y);


    а сами методы выглядит так:

    void __fastcall TOButton::MouseDown(TMouseButton Button,
    Classes::TShiftState Shift, int X, int Y)
    {
    TCustomControl::MouseDown (Button, Shift, X, Y);
    if (Button == mbLeft)
    {
    Pressed = true;
    Paint ();
    }
    }
    //---------------------------------------
    void __fastcall TOButton::MouseUp(TMouseButton Button,
    Classes::TShiftState Shift, int X, int Y)
    {
    TCustomControl::MouseUp (Button, Shift, X, Y);
    Pressed = false;
    Paint ();
    }
    //-----------------------------------------

    Но как только пытаюсь запустить проект, выдаеться сообщение об ощибке:
    [C++ Error] OButton.h(19): E2113 Virtual function '_fastcall TOButton::MouseDown(TMouseButton,TShiftState,int,int)' conflicts with base class 'TControl'
    [C++ Error] OButton.h(21): E2113 Virtual function '_fastcall TOButton::MouseUp(TMouseButton,TShiftState,int,int)' conflicts with base class 'TControl'


    Родительским классом использую TCustomControl. Я с 8 часов утра пытаюсь понять в чем дело и безрезультатно! Люди, помогите пожалуйста, буду очень благодарен!!! Заранее спасибо.
     
  2. Pasha

    Pasha Гость

    Для: Maycal
    Замени в объявлении слово virtual на DYNAMIC.
     
  3. Maycal

    Maycal Гость

    А что означает объявлеиние типа DYNAMIC?
     
  4. Pasha

    Pasha Гость

    Для: Maycal
    Скорее всего в TControl твои функции объявлены как dynamic, и сделать из них обычные виртуальные уже нельзя.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей