Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1118 / 789 / 100
Регистрация: 01.02.2011
Сообщений: 1,851
Записей в блоге: 1
1

События у унаследованного VCL класса

04.12.2013, 19:57. Показов 730. Ответов 2
Метки нет (Все метки)

Здравствуйте. Есть проблемка:
Есть класс, унаследованный от TImage.
Нужно чтобы, при возникновении какого-либо события, например, OnMouseDown, у объекта этого класса сначала выполнялись определенные действия, а только потом обработчик, заданный для этого объекта.

Добавлено через 28 минут
Всё, разобрался:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class TExtendImage : public TImage
{
public:
        __fastcall TExtendImage(TComponent* AOwner) : TImage(AOwner)
        {
                this->OnMouseDown = ExOnMouseDown;
        }
 
        DYNAMIC void __fastcall MouseDown(TMouseButton Button, Classes::TShiftState Shift, int X, int Y)
        {
                ExOnMouseDown(this, Button, Shift, X, Y);
                TImage::MouseDown(Button, Shift, X, Y);
        }
 
        void __fastcall ExOnMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
        {
                ShowMessage("mouse down");
        }
};
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        TExtendImage *eimg = new TExtendImage(this);
        eimg->Picture->LoadFromFile("C:\\1.bmp");
        eimg->Parent = this;
        eimg->OnMouseDown = OnMouseDown;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::OnMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
        ShowMessage("form down");
}
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2013, 19:57
Ответы с готовыми решениями:

Собственные события для VCL
Всем привет! Пожалуйста, подскажите как можно полностью определить новое, пользовательское событие...

Реализация события без использования VCL
Здравствуйте! В C++ Builder, используя средства VCL, я реализовывал события так: - в h-файле перед...

Создать обработчик события для класса
Добрый день. Подскажите, пожалуйста, как создать свой обработчик события для своего класса? В...

Объявление объекта класса VCL
Всем здравствуйте. Хочу внутри функции динамически создавать (и уничтожать) объект TImage ...

2
Эксперт С++
8297 / 6128 / 613
Регистрация: 10.12.2010
Сообщений: 28,659
Записей в блоге: 30
05.12.2013, 16:17 2
Почему не от TGraphicControl ?
0
1118 / 789 / 100
Регистрация: 01.02.2011
Сообщений: 1,851
Записей в блоге: 1
05.12.2013, 19:00  [ТС] 3
В коде есть лишние строки (не успел вчера убрать после того, как закончил экспериментировать)

Цитата Сообщение от Avazart Посмотреть сообщение
Почему не от TGraphicControl ?
Это в первую очередь TImage, отличие будет только в том, что при нажатии на него будет показываться оригинальный размер изображения. Ща просто пытаюсь упростить (в плане использования) всё написанное ранее. А то раньше понаписал кучу всяких примочек, а теперь не получается их все вместе собрать в одном проекте, т.к. не заинкапсулированы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2013, 19:00

Инициализация класса, унаследованного от QWidget
Доброго времени суток. Пожалуйста объясните темному как сделать следующее. Имеем класс: class...

Доступ к функциям унаследованного класса
Не знаю как в двух словах описать проблему поэтому если что, модераторы поправьте название темы. У...

Нужно вывести информацию из унаследованного класса
Всем доброго времени суток)) Я недавно начала изучать WindowsForm и столкнулась со следующей...

Нужно ли самому удалять экземпляр класса, унаследованного от QThread?
Привет! Есть класс, унаследованный от QThread с макросом Q_OBJECT, создаю я этот экземпляр при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru