События, связанные с мышью.
Для формы создадим обработчики событий, которые будут фиксировать нажатие клавиши мыши в первой секции компонента StatusBar1,отпускание кнопки мыши во второй секции и текущее положение курсора мыши в третьей секции.
1. Создайте обработчики для формы:
а. Нажатие на кнопку мыши:
Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: integer);
Begin
// В первую секцию панели статуса записываем координаты мыши.
StatusBar1.Panels[0].Text := 'Начало: '+ 'X: ' + IntToStr(x) + ';Y: ' +IntToStr(y);
End;
б. Отпускание кнопки мыши:
Procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: integer);
Begin
// Во вторую секцию панели статуса записываем координаты мыши.
StatusBar1.Panels[1].Text := 'Конец: '+ 'X: ' + IntToStr(x) + ';Y: ' +IntToStr(y);
End;
в. Перемещение мыши:
Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: integer);
Begin
// В третью секцию панели статуса записываем координаты мыши.
StatusBar1.Panels[2].Text := 'X: ' + IntToStr(x) + ';Y: ' +IntToStr(y);
End;
2. Проверьте правильность Ваших действий, осуществив прогон программы.
Общие свойства компонентов Hint.
Все видимые элементы имеют свойства Hint: String, ShowHint: Boolean,регулирующие появление и содержание ярлычка – небольшого справочного окна возле элемента, на котором остановился курсор.
1. В свойство Hint для панели Panel1 введите текст: «Эту панель можно перемещать».
2. Свойству ShowHint задайте значение True.
3. Осуществите прогон программы и убедитесь в том, что при остановке курсора над компонентом Panel1 «всплывает» Hint.
Задания:
1. Снабдите справочной информацией компоненты вашего приложения, используя свойства Hint и ShowHint.
2. На главной форме приложения установите компонент TStatusBar,в котором отразите текущую дату (Date - возвращает текущую дату в формате TDateTime; DateToStr - преобразовывает значение даты формата TDateTime в ее строковое представление) и текущие координаты мыши.
3. В лабораторной работе №2 организуйте интерфейс Drag&Drop для переноса единиц измерения в метку. Для этой цели дополните приложение еще одним компонентом TLabel.
4. Организуйте интерфейс Drag&Drop для перемещения кнопки по форме в лабораторной работе №2.
5. Установите защиту информации для ввода в лабораторной работе №2.
6. В лабораторной работе №3 организуйте интерфейс Drag&Drop для переноса значения среднего балла из редактора в метку. Для этой цели дополните приложение еще одним компонентом TLabel.
7. Установите защиту информации для ввода в лабораторной работе №3.
Программу запишите в Ваш каталог Lab6.
ЛАБОРАТОРНАЯ РАБОТА № 7
СТАНДАРТНЫЕ ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ. ДОПОЛНИТЕЛЬНЫЕ ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ. ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ ИНТЕРФЕЙСА WIN32. КОМПОНЕНТЫ СИСТЕМНЫХ ИНТЕРФЕЙСОВ WINDOWS.
Теоретические сведения
Новые элементы управления Windows 95/98 расположены на странице Win32. Это многостраничные блокноты, контейнеры для панелей инструментов с возможностью переноса элементов управления (Docking), древовидные списки, календари, компоненты для изменения значений (плавного – TTrackBarи скачкообразного TUpDown), компонент для отображения процесса выполнения операции и другие.
Ход работы
Загрузите систему визуального программирования Delphi.
2. Создайте в своем каталоге подкаталог Lab7.Создайте новое приложение.
Панели инструментов.
1. Поместите на форму контейнер для панелей инструментов TControlBar(страница Additional). Компонент служит удобным контейнером для размещения инструментальных панелей TToolBar. Он активно использует технологию Drag&Dockдля управления положением панелей. Установите в его свойство Align значение alTop,вAutoSize – True,вDragKind – dkDock.Оставьте в свойстве DragMode значение dmManual.
2. Положите на свободное место формы два компонента ImageList (страница Win32) и наполните каждый из них четырьмя изображениями. Чтобы наполнить компонент ImageListизображениями, подведите курсор, дважды щелкните мышью и выберите в его вспомогательном меню опцию ImageList Editor.
3. В появившемся окне редактора нажмите кнопку <Add>и выберите BMP-файлы из каталога Images\Buttons.Файлы в этом каталоге имеют по два изображения, в то время как компонент ImageListспособен хранить только одиночные изображения одинакового размера. Поэтому редактор предложит Вам разделить два изображения. Согласитесь с ним. Щелкните, указав правое изображение в окне редактора и нажмите кнопку <Delete>, чтобы уничтожить его.
4. Повторите п. 2, 3для загрузки нескольких изображений и затем закройте редактор.
5. Поместите на компонент ControlBar1компонент TToolBar (страница Win32). Установите в свойство Images компонента ToolBar1значение ImageList1 и поместите в него четыре кнопки. Для вставки кнопки щелкните по ToolBar1правой кнопкой и выберите опцию NewButton.
6. Поместите на ControlBar1 компонент TToolBar.Измените в его свойстве Align значение alTopна alNone. Свяжите компонент с ImageList2(свойство Images) и создайте в нем кнопки (см. п. 2,5).
7. Для обоих компонентов TtoolBarпоместите в свойство DragKind значения dkDock, в DragMode – dmAutomaticи в AutoSize – True.
8. Запустите программу и попробуйте поместить панели.
Многостраничный блокнот.
В палитре компонентов имеются два элемента управления, обеспечивающих создание многостраничных блокнотов. Это компоненты TTabControl и TPageControl. Переключение между страницами осуществляется при помощи закладок. Компонент TPageControlможет содержать несколько перекрывающих друг друга панелей класса TTabSheet. Каждая панель выбирается связанной с ней закладкой и может содержать свой набор помещенных на нее компонентов.
1. Поместите на форму компонент TPageControl.
2. Чтобы на этапе конструирования добавить новую панель, щелкните по компоненту правой кнопкой мыши и выберите New Page. Для новой страницы можно установить заголовок в свойстве Caption (создайте 4 страницы).
Компонент TPaintBox.
Компонент TPaintBoxрасположен на панели System. Это простое окно для рисования произвольных изображений. Канва содержится в свойстве Canvas компонента, графические инструменты – в свойствах Font, Pen и Brush.
1. Поместите на первую страницу PageControl компонент TPanelи задайте его свойству Align значение alRight.
2. На панели поместите две кнопки TBitBtn.Задайте кнопкам заголовки и пиктограммы (свойства Caption (Эллипс и Очистка) и Glyph).
3. На свободное место страницы поместите компонент TPaintBox(Align - alClient).
4. Создайте обработчик события OnClick для BitBtn1.
Procedure TForm1.BitBtn1Click(Sender: TObject);
Var x,y: integer;
Begin
With PaintBox1.Canvas do
Begin
Brush.Color:=clRed;
Ellipse(0,0,Width,height);
Font.Size:=Height div 5;
Font.Color:= clWhite;
X:=(Width-TextWidth('Delphi')) div 2;
Y:=(Height-TextHeight('D')) div 2;
TextOut(x,y, 'Delphi');
End; End;
В обработчике, с помощью методов класса Canvas, рисуется эллипс красного цвета.
5. Этот же обработчик назначьте любой кнопке созданной Вами панели инструментов.
6. Для кнопки BitBtn2создайте обработчик:
Procedure TForm1.BitBtn2Click(Sender: TObject);
Begin
PaintBox1.Refresh;
End;
Нажатие на кнопку BitBtn2приведет к очистке компонента PaintBox1.
7. Проверьте правильность Ваших действий, осуществив прогон программы.