Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Delphi.doc
Скачиваний:
29
Добавлен:
28.04.2019
Размер:
407.55 Кб
Скачать

Практическая работа Delphi_02

Цель: Создать программу, меняющую вид курсора при каждом нажатии кнопки мыши

План разработки программы

Вызовите в Инспекторе Объектов свойства формы. Если щелкнуть на свойстве Cursor, а затем на клавише с черным треугольником, появится список значений от crArrow до crVSplit. Каждое значение имеет свой числовой эквивалент в пределах от —14 (crVSplit) до 0 (crDefault).

Для того чтобы узнать числовое значение имени-константы, например crVSplit, требуется нажать <Ctrl+F7>, в результате чего появится диалоговое окно Evaluate/Modify. В строке Expression нужно ввести имя константы и нажать <Enter>. Однако, это возможно только после успешной компиляции или запуска проекта на выполнение.

В качестве первого шага создания обработчика события следует точно определить, что должно произойти. Например, недостаточно сказать, что каждый раз, когда пользователь щелкает мышью, вид курсора должен меняться согласно следующему значению в списке. Необходимо также определить, что, когда курсор находится на последнем значении (crDefault), дальше он должен перейти на первое значение (crVSplit).

Щелкните один раз на закладке Events в окне Object Inspector, затем дважды — на колонке обработчика событий рядом с событием OnClick. На переднем плане появится Code Editor с помещенной сразу в нужное место модуля заготовкой обработчика события OnClick. Остается только ввести код между строками begin и end обработчика событий.

Там, где находится курсор, следует ввести следующий код:

if Cursor = crDefault then

Cursor := crVSplit

else

Cursor := Succ(Сursor);

Запустите программу и щелкните мышью на форме несколько раз. При каждом щелчке курсор будет менять форму. После того как вы переберете все формы курсора, цикл начнется сначала. Вы создали программу, реагирующую на события мыши! Зарисуйте в тетрадь виды курсоров и их обозначения. Другими событиями мыши являются OnDblClick, OnMouseDown, OnMouseMove и OnMouseUp, а также OnDragOver и OnDragDrop. Эти события вы можете использовать при построении своих программ.

Установите на форму дополнительно компонент Label и внесите поясняющую эту задачу надпись.

Сохраните проект и закройте его.

Создадать программу перемещения формы по экрану при нажатии клавиш управления курсором

(Она должна реагировать на нажатия клавиш перемещением формы на восемь пикселей в соответствующем направлении.)

План разработки программы

Командами Файл|Новая форма создайте новую форму. Сделайте форму узкой, насколько это возможно, и измените ее высоту так, чтобы она приблизительно была равна ширине. Свойству BorderStyle присвойте значение bsSingle, затем дважды, щелкните на свойстве BorderIcons и присвойте biMaximize значение False.

Для обработчика события OnKeyDown введите следующий код:

case key of

vk_left : left := left - 8;

vk_up : top := top-8;

vk_right : left := left +8;

vk_down : top := top + 8;

end;

Для того чтобы ввести код для конкретного события, следует дважды щелкнуть на колонке обработчика события справа от имени этого события. Delphi создаст шаблон для обработчика, и вы введете код между строками begin и end шаблона.

После того как программа успешно откомпилирована или запущена, с помощью диалогового окна Evaluate/Modify можно узнать числовое значение имени-константы. Следует нажать <Ctrl+F7>, ввести имя константы и нажать клавишу <Enter>.

Добавьте еще один обработчик события клавиатуры, чтобы программа завершала работу при нажатии клавиши <Q>. Для этого обработчика можно использовать событие OnKeyPress. Чем данное событие отличается от OnKeyDown или OnKeyUp? OnKeyPress срабатывает после нажатия клавиши, и система идентифицирует ее как клавишу с простым символом, например <А> или <!>, а не как клавишу управления курсором, функциональную клавишу, комбинацию <Аlt+клавиша> и т.д.

Создадим, не открывая нового проекта, для формы обработчик события OnKeyPress, содержащий одну-единственную строку:

if Upcase(key) = 'q' then close;

Функция UpCase встроена в Delphi. При передаче ей буквы алфавита она возвращает эту букву как прописную. При передаче любого другого символа функция возвращает символ без изменения.

Запустите программу и попробуйте испытать ее. При нажатии клавиш управления курсором форма послушно перемещается в соответствующем направлении. Если нажать <Q>, программа завершит работу.

Сохраните проект и закройте его.

Многие программы Windows способны пресечь попытку пользователя прекратить их работу, задав вопрос, уверен ли он, что это именно то, что ему нужно. Программы Delphi могут запрашивать такое подтверждение из обработчика события OnCloseQuery.

Создать программу, которая на закрытие окна выводит сообщение