Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные события




Как и в случае свойств и методов, среди событий имеются такие, которые инициируются наиболее часто. Компоненты представляют большое количество возможных элементов управления Windows, и каждый компонент имеет свои индивидуальные особенности. События, специфические для форм, здесь не рассматриваются, поскольку я уже говорил о них в 6-й день. Наиболее часто используемые события перечислены в таблице3.

Таблица 3. Основные события компонентов

Событие Описание  
OnChange Это событие возникает, когда в элементе управления происходят какие-либо изменения. Конкретная реализация зависит от компонента.  
OnClick Происходит при щелчке на компоненте любой кнопкой мыши.  
OnDbIClick Происходит при двойном щелке на компоненте.  
OnEnter Происходит, когда компонент оконного типа получает фокус (активизируется). 1  
OnExit Происходит, когда компонент оконного типа теряет фокус в результате переключения на другой элемент управления. Однако, когда пользователь переключается между формами или приложениями, это событие не возникает.  
OnKeyDown Происходит при нажатии пользователем клавиши, если компонент находится в фокусе. Клавиши включают все алфавитно-цифровые клавиши, а также клавиши-стрелки. Home, End, Ctrl и т.д.  
On Key Press Происходит при нажатии одной из алфавитно-цифровых клавиш, клавиши Tab, backspace. Enter или Esc.  
OnKeyUp Происходит каждый раз, когда клавиша отпускается.  
OnMouseDown Событие возникает, когда на компоненте нажимается кнопка мыши. 1 Параметры, передаваемые обработчику события, содержат информацию о том, какой кнопкой мыши щелкнули и какие функциональные клавиши были при этом нажаты (Alt, Shift или Ctrl), а также координаты х и у курсора мыши в момент щелчка.  
OnMouseMove Происходит при перемещении курсора мыши через элемент управления.  
OnMouseUp Событие возникает при отпускании кнопки мыши на элементе управления, если перед этим кнопка была нажата на этом же элементе.  
OnPaint Это событие возникает каждый раз, когда необходимо перерисовать компонент. Вы можете использовать это событие для выполнения специфической для данного компонента процедуры перерисовки.  

Особые объекты приложения: объект управляющий экраном, принтером, буфером обмена.

Главный объект, управляющий приложением

То, о чем мы рассказали выше, — это внешняя сторона приложения. А что же происходит внутри? Дело обстоит так. Над всеми формами и компонентами стоит объект Application класса TApplication, олицетворяющий собой приложение в целом. Это главное "действующее лицо" создается в начале выполнения любого приложения. Объект Application держит в руках все нити управления: создает главную и дочерние формы, уничтожает их, обрабатывает сообщения Windows, обслуживает исключительные ситуации. Вы, кстати, уже встречались с ним в главном программном файле:

 

 

#include <vcl\vcl.h>

#pragma hdrstop

 

// --------------------------------------------------------------------------------------

USEFORM{"Unit1.cpp", Form1);

USERRES("Project1.res");

 

// --------------------------------------------------------------------------------------

WIMAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->initialize ();

Application->CreateForm(__classid(Tform1), &Form1);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

 

return 0;

}

 

Объект Application отсутствует в палитре компонентов, поэтому его свойства можно изменять только из программы. Кратко рассмотрим наиболее важные свойства этого объекта.

· Свойство MainForm указывает главную форму приложения. По умолчанию главной считается первая создаваемая форма.

· Свойство ExeName содержит полное имя (включая маршрут) выполняемого ЕХЕ-файда приложения. Имя выполняемого файла совпадает с именем файла проекта, но имеет расширение ЕХЕ. Если имя проекта не было указано, то по умолчанию выполняемому файлу назначается имя PROJECT1.EXE.

· Свойство Title содержит название приложения, которое отображается на панели задач Windows во время его работы. По умолчанию значением свойства является имя выполняемого файла без расширения.

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

· Свойство Icon содержит значок приложения, отображаемый на панели задач Windows во время работы приложения. Значок отображается слева от названия.

Если вы желаете изменить для приложения название (Тitlе), значок (Icon) и имя help-файла (HelpFile), не корректируйте главный программный файл, а лучше обратитесь к диалоговому окну Project Options, которое появляется по команде меню Options | Project... (рис. 3.36).

Объект Application имеет несколько полезных событий. Самые важные из них: OnAcHvate, OnDeactivate, OnException.

· Событие OnActivate происходит, когда приложение получает активность, т. е. когда пользователь переключается на него с другого приложения.

· Событие OnDeactivate происходит, когда приложение теряет активность, т. е. когда пользователь переключается с него на другое приложения.

· Событие OnException происходит, когда в приложении возникает необработанная исключительная ситуация. По умолчанию обработчик этого события вызывает метод ShowException для отображения окна сообщений с пояснением причины ошибки. Вы можете изменить реакцию на событие OnException, переписав его обработчик.

Из всех методов объекта Application мы упомянем лишь один — Terminate. Он выполняет упорядоченное завершение приложения. Запомните, метод Terminate не вызывает немедленного завершения приложения, а лишь ставит в очередь событий команду завершения.

При необходимости на помощь объекту Application спешат менее значительные "персоны": объекты классов TScreen, TPrinter и TCIipboard. Они также являются глобальными и создаются автоматически.

Объект, управляющий экраном

Каждая программа что-то выводит на экран, иначе она просто бесполезна. В C++Builder экран трактуется как глобальный объект Screen класса TScreen, имеющий набор свойств. Большинство из них жестко связаны с физическими характеристиками экрана (с "железом"), поэтому в большинстве случаев могут только читаться, но не доступны для записи. Обозначим самые важные свойства.

· Свойства Width и Height показывают ширину и высоту экрана в пикселах.

· Свойство ActiveForm показывает активную форму, т. е. форму, которая в текущий момент находится в фокусе ввода.

· Свойство ActiveControl указывает управляющий элемент пользовательского интерфейса, который обладает фокусом ввода в активной форме.

· Свойство Cursor управляет внешним видом курсора мыши для всех форм приложения.

Объект, управляющий принтером

Большинство Windows-приложений выводят некоторый текст или рисунки на печатающее устройство. Для этого полезного дела в C++Builder имеется специальный объект класса TPrinter, инкапсулирующий интерфейс печати Windows. Он расположен в модуле Printers и становится доступен через вызов функции Printer. Свойства и методы объекта класса TPrinter дают вам весьма неплохие возможности для печати из приложения на все виды принтеров. Однако тема эта заслуживает отдельной главы (см. главу 8).

Объект, управляющий буфером обмена

Каждый, кто работал с Windows-приложениями, знает, какая это великолепная штука — буфер обмена (Clipboard). Напомним, что это буфер, куда можно что-то положить (например, рисунок в формате BMP), а потом взять это оттуда. За операции с буфером обмена в C++Builder отвечает глобальный объект класса TCIipboard. Он расположен в модуле Clipboard и доступен через вызов функции Clipboard. Объект класса TCIipboard предоставляет в распоряжение программиста интерфейс к буферу обмена Windows.

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 309; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.