Лабораторная работа №6. Использование механизма обмена сообщениями при программировании в среде Delphi



Скачать 15.31 Kb.
Дата10.11.2016
Размер15.31 Kb.
Лабораторная работа №6.

Использование механизма обмена сообщениями при программировании в среде Delphi.
Описание работы: Должны быть созданы 2 формы. На первой должны быть размещены элементы управления: 6 кнопок с надписями «Вверх», «Вниз», «Вправо», «Влево», «Создать», «Удалить». При нажатии на кнопку «Создать» должна создаваться еще одна кнопка с надписью «Бегунок» (Если она уже создана – должно выводиться соответствующее сообщение). При нажатии на кнопку удалить кнопка- бегунок должна удаляться (Если бегунка нет – должно выводиться соответствующее сообщение). При нажатии на кнопки с названиями «Вверх», «Влево» и т. д. кнопка «Бегунок» должна начинать движение в направлении соответствующем нажатой кнопке. При достижении границы формы кнопка бегунок должна останавливаться. На второй форме должен быть размещен элемент TMemo, в который должны выводиться строки обо всех событиях происходящих на первой форме (Создана кнопка бегунок, кнопка начала движение влево, кнопка достигла левой границы формы и т. д.). Это должно осуществляться с помощью механизма обмена сообщениями. Для организации движения кнопки использовать объект TTimer.
Примечание:
Допускается выполнение лабораторной работы на любом объектном языке программирования. Примеры кода приведены для Дельфи, в других языках следует использовать код с аналогичным функционалом.
Для объявления собственных сообщений использовать инструкцию

const WM_INFO = WM_USER+2;


для отправки сообщений используется процедура SendMessage

LRESULT SendMessage(

HWND hWnd, handle окна которому будет отправлено сообщение

UINT Msg, // сообщение

WPARAM wParam, // первый парметр сообщения

LPARAM lParam // второй параметр сообщения

);

Например


S:='Объект вышел за границы формы!’ SendMessage(Form2.Handle,WM_Info,0,Longint(S));
Для обработки приходящих сообщений во второй форме должна быть объявлена процедура

procedure WMInfo(Var Msg: TMessage);message WM_Info;


Для того чтобы поместить в мемо пришедшую в сообщении строку надо выполнить код Memo1.Lines.Add(String(Msg.LParam));

Цель работы: выработать навыки по использованию механизма обмена сообщениями в Delphi и объекта таймер.


База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница