Вторник, 16.04.2024, 15:50
Приветствую Вас Заблудший(Гость) | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории каталога
с++ [1]
Java [6]
та которая Java машина
Работа в 1c [1]
Форма входа
Поиск
Друзья сайта

Статистика
Pir
Главная » Статьи » Программирование » с++

Создание визуальных компонентов в C++ Builder
Создание визуальных компонентов в C++ Builder

Для этого нам понадобится:


  • C++ Builder (у меня 5-я версия)
  • Голова

Для начала составим тех задание.
Разработать компонент который будет реагировать на событие OnClick. И визуально будет выглядеть в 2-х состояниях : покоя и нажатия.
Далее мы теперь видим, что компонент должен рисоваться на форме, поэтому порождать будем от компонента TCustomControl (у которого есть свойства отвечающие за рисование).
Создадим шаблон: Component->New Component… В появившемся окне заполним поля:


  • Ancestor type = TCustomControl
  • Class Name = “Имя вашего компонента, я назвал TXapacC”

Жмем на кнопочку «OK»
Теперь идем в заголовочный файл и там определяем собственно то, что будем переписывать:
1. В раздел private:

  • bool PaintType; //Состояние которое отрисовать

2. В раздел public:

  • void PaintMouseDown();//Рисуем в нажатом состоянии
  • void PaintNormal();//Нормальное состояние(так сказать подефолту)
  • DYNAMIC void __fastcall MouseDown(TMouseButton Button, Classes::TShiftState Shift, int X, int Y);//Событие при нажатии мыши
  • DYNAMIC void __fastcall MouseUp(TMouseButton Button, Classes::TShiftState Shift, int X, int Y);//Событие при отпускании мыши

3. В раздел __published:

  • __property OnClick; //Типерь можем назначать обработчик

Теперь переходим в файл реализации (.cpp) и реализуем вышеопределенные методы
В конструктор добавим:

Code

__fastcall TXapacC::TXapacC(TComponent* Owner)
: TCustomControl(Owner)
{
PaintType=false;
}

Обработчик рисования:

Code

void __fastcall TXapacC::Paint(void)
{
Canvas->Brush->Color=clBtnFace;
Canvas->FillRect(TRect(0,0,Height,Width));
Canvas->Brush->Color=clRed;
if(PaintType==1)
PaintMouseDown();
else
PaintNormal();
};

Рисование кнопки в нажатом состоянии:

Code

void TXapacC::PaintMouseDown()
{
Canvas->Brush->Color=clRed;
Canvas->Ellipse(0,0,19,19);
};

Рисование кнопки в нормальном состоянии:

Code

void TXapacC::PaintNormal()
{
Canvas->Brush->Color=clRed;
Canvas->Ellipse(0,0,20,20);
};

Обработчик нажатия мыши:

Code

void __fastcall TXapacC::MouseDown(TMouseButton Button, Classes::TShiftState Shift, int X, int Y)
{
PaintType=1;
Paint();
};

Обработчик отпускания мыши:

Code

void __fastcall TXapacC::MouseUp(TMouseButton Button, Classes::TShiftState Shift, int X, int Y)
{
PaintType=0;
Paint();
};

Итак процесс создания компонента закончен, теперь осталось его скомпилировать установить, и запустить.
Для компиляции заходим в меню:
Component->Install Component… В появившемся меню в поле Unit file name выбираем путь к нашему компоненту (по умолчанию он все автоматически сохраняются в каталог «"C:\Program Files\Borland\CBuilder5\Lib\"»). Нажимаем «OK». Далее компилируем нажав в открывшемся окне на кнопку «Compile» если есть ошибки, то компилятор укажет на них, если же ошибки отсутствуют, то вы увидите надпись «Done:Make» (не заметить ее очень трудно). Жмем «Install» в том же окне. И ждем с нетерпением надпись «Packade бла бла has been installed».

Все компонент установили, теперь осталось им воспользоваться.

По умолчанию установка происходит в закладку «Samples».
Думаю если читающего заинтересовало написание компонентов, то их использование уже известно. Поэтому объяснять не будем.



Мой пример

Обсудить на форуме

Категория: с++ | Добавил: Xapac (13.02.2009)
Просмотров: 6364 | Рейтинг: 4.2/4 |
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024