(номер вашего задания такой же, как в практической работе №3)
Задание №1
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
- изменение скорости движения летательных объектов;
- изменение скорости перемещения «охотника»;
2. Создать всплывающее меню, которое выводится при щелчке по «охотнику» и содержит три пункта для изменения высоты объекта
Задание №2
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
- изменение скорости падения буквы;
- изменение регистра символа (заглавные, прописные);
- изменение языка (латинские, русские)
Задание №3
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
- изменение цвета лапты;
- изменение формы шарика (овал, шар, квадрат);
- изменение скорости движения шарика
2. Создать всплывающее меню, которое выводится при щелчке по лапте и содержит два пункта: уменьшить длину, увеличить длину
|
|
Задание №4
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
- изменение скорости «жевания» колобка (медленно, быстро);
- изменение внешнего вида «жующего» объекта (увеличение и уменьшение размера);
2. Создать всплывающее меню, которое выводится при щелчке по «колобку» и включающее в себя два пункта: пауза и пуск.
Контрольные вопросы
1. Какие типы меню существуют и как они создаются в приложении?
2. Какие возможности имеются для настройки меню?
3. Какие возможности имеются для настройки формы?
4. Какая последовательность создания панели инструментов?
ПРАКТИЧЕСКАЯ РАБОТА № 5
Тема: Элементы пользовательского интерфейса
Цель работы: Закрепить навыки проектирования интерфейса приложения, получить навыки использования стандартных диалоговых окон и буфера обмена.
Пояснения к работе
В данной работе используются новые компоненты:
· RichEdit многострочный редактордля работы с форматированным текстом в формате RTF,свойство компонента SelAttributes позволяет менять атрибуты шрифта для выделенного фрагмента текста;
· ColorBox – раскрывающийся список с образцами цвета;
· SpinEditor -окно редактирования со счетчиком для задания и показа данного значения;
· ImageList представляет собой набор пиктограмм, хранящихся на диске в файлах форматов.bmp и.ico. Размеры пиктограмм соответствуют кнопкам панели инструментов и командам меню. Доступ к каждой пиктограмме можно получить при помощи свойства ImageIndex – порядкового номера пиктограммы в наборе (нумерация с нуля).
· Компоненты стандартных диалогов:
|
|
На странице Dialogs палитры компонентов размещены пиктограммы 11 компонентов. Они реализуют стандартные диалоги общего назначения, используемые в приложениях Windows:
OpenDialog (открытие файла), SaveDialog (сохранение файла), FontDialog (форматирование шрифта), ColorDialog (палитра цветов), FindDialog (поиск), ReplaceDialog (замена) и др. Для вызова любого стандартного диалога используется метод Execute - функция возвращает логическое значение: при закрытии окна диалога кнопкой ОК – True, при отмене – False.
После закрытия стандартного диалога он возвращает через свои свойства значения, выбранные или установленные в процессе диалога. Например, при открытии файла возвращаемым значением является имя открываемого файла (OpenDialog1.FileName), а при выборе цвета - новый цвет (значение свойства ColorDialig1.Color).
Чтение и запись текстовых файлов
Для работы с файлом необходимо назначить ему файловую переменную, т.е. ассоциировать ее с именем файла на диске. Через эту переменную будет выполняться вся работа с файлом. Для назначение файловой переменной F1 используется процедура AssignFile (F1,FileName).
Для создания (записи) текстового файла используется процедура Rewrite (F1).
Если необходимо добавить текст в существующий файл, используется процедура Append (F1).
Для открытия (чтения) текстового файла используется процедура Reset (F1).
Чтение строки файла Readln (F1,Stroka);
Запись строки в файл Writeln (F1,Stroka);
После использования файла его следует закрыть процедурой CloseFile (F1).
Можно за один раз прочитать текстовый файл в многострочный редактор, например:
RichEdit1. Lines.LoadFromFile (‘c:\dogovor.txt’)
Запись содержимого текстового окна в файл одной командой
RichEdit1. Lines.SaveToFile (‘c:\dogovor.txt’)
Постановка задачи
Разработать приложение, реализующее основные функции текстового редактора:
- форматирование шрифта для выделенного контекста;
- копирование и перемещение выделенного контекста;
- выравнивание абзацев;
- поиск и замена в тексте;
- открытие и сохранение текстового файла;
Все функции приложения должны быть доступны через главное меню и панель инструментов.
Часть
Порядок выполнения
- Создать новый проект и сохранить его под именем MainEditor.
- Создать на форме меню:
· установить на форме компонент MainMenu (Standard);
· присвоить ему имя mmMain. Каждому пункту меню задать информативное имя:
Файл (miFile) Новый(miNewFile) Открыть(miOpenFile) Сохранить(miSaveFile) | Правка(miEdit) Копировать (miCopy) Вырезать(miCut) Вставить(miPaste) Найти(miFind) Заменить(miReplace) |
Формат (miFormat) Шрифт (miFont) Абзац (miPar) | Вставка (miIns) Дата (miData) Время (miTime) |
Выход (miExit)
- Создать панель инструментов:
· расположить на форме компонент ToolBar (Win32), присвоить имя tlbMain, для свойства EdgeBorders добавить значение ebBotton True;
· щелкнуть на созданной панели правой кнопкой мыши и выполнить NewButton, установить кнопке следующие свойства:
Hint создать файл
MenuItem miNewFile
Name btnNewFile
ShowHint True
· аналогичным образом создать еще кнопки и изменить им свойства: Открыть, Сохранить, Копировать, Вырезать, Вставить, Найти, Заменить;
· для добавления изображений командам и кнопкам добавить на форму компонент ImageList (Win32);
· дважды щелкнуть по компоненту, появится редактор, щелкните по кнопке Add и указать размещение требуемых графических файлов Program Files\Common Files\Borland Shared\Images\Buttons, добавить соответствующий файл, в момент добавления на экране появится запрос о разбиении одной пиктограммы на две, ответьте утвердительно.
- Связать набор пиктограмм с панелью инструментов и основным меню: для компонентов mmMain и tlbMain для свойства Images из списка выбрать ImageList1.
- Изменить значения свойства ImageIndex для соответствующих пунктов меню и кнопок панели инструментов.
- Добавить на панель инструментов компонент ColorBox (Additional) для выбора цвета шрифта, изменить значения свойств:
Name cobFontColor, Selected clBlack,
|
|
Style cbExtendedColors False
cbSystemColors False
- Добавить на панель инструментов компонент SpinEditor (Samples) для ввода размеров шрифта, изменить значения свойств:
Name - sdFontSize, MaxValue 70, MinValue 8)
- Добавить на панель инструментов три компонента CheckBox (Standard) для изменения начертания шрифта, изменить значения свойств для каждого:
Name chBold, chItalic, chUnderLine
Caption Ж К Ч
- На форме установить компонент RichEdit (Win32), изменить значения свойств для этого объекта:
Name Document, ScrollBars ssBoth
- Для объекта sdFontSize выбрать событие OnChange и ввести следующий код:
document.Font.Size:=sdFontSize.Value;
- Для объекта chBold выберите событие OnClick и ввести следующий код:
if chBold.Checked Then
document.Font.Style:= document.Font.Style +[fsBold]
Else
document.Font.Style:= document.Font.Style -[fsBold];
- Сохранить проект и проверить его работу:
· ввести произвольный текст;
· изменить размер шрифта и начертание Полужирный.
- Самостоятельно ввести код для объектов chItalic и chUnderline (использовать константы fsItalic, fsUnderline), проверить работу приложения.
- Для объекта cobFontColor выбрать событие OnChange и ввести следующий код:
document.font.Color:= cobFontColor.Selected
10. Сохранить и проверить работу программы.
Часть
1. Для пункта меню и кнопки панели инструментов Вырезать ввести код:
document.CutToClipboard;
2. Для пункта меню и кнопки панели инструментов Копировать ввести код:
document.CopyToClipboard;
3. Для пункта меню и кнопки панели инструментов Вставить ввести код:
document.PasteFromClipboard;
4. В пункт меню Правка добавить подпункт Выделить все и ввести для него следующий код:
document.SelectAll;
5. Проверить работу приложения.
6. Для того чтобы форматировать только выделенный фрагмент текста, внести изменения в код для объекта chBold
If chBold.Checked Then
document. SelAttributes. Style:= document. SelAttributes. Style +[fsBold]
Else
document. SelAttributes. Style:= document. SelAttributes. Style -[fsBold];
7. Проверить работу приложения и внести соответствующие изменения для других элементов форматирования.
8. Добавить на панель инструментов комбинированный список, задать ему имя cbFontName, для свойства Items ввести несколько значений, например: Times New Roman
Courier New
Garamond
Arial
Comic Sans MS
9. Самостоятельно написать код, позволяющий изменять тип шрифта выделенного фрагмента.
|
|
10. Для выравнивания абзацев добавить на панель инструментов еще три кнопки, задать им имена btnLeft, btnCenter, btnRight и соответствующее изображение и ввести код в соответствии с назначением:
document.Paragraph.Alignment:= TaLeftJustify;
document.Paragraph.Alignment:= TaRightJustify;
document.Paragraph.Alignment:= TaCenter;
11. Проверить работу приложения.
12. Для форматирования абзацев маркированным списком добавить на панель инструментов еще одну кнопку, задать имя btnSpisok, изменить изображение и ввести для нее код:
document.Paragraph.Numbering:=nsBullet;
13. Проверьте работу приложения. Самостоятельно изменить работу приложения, чтобы была возможность отменять маркированный список при повторном щелчке.
Часть
1. Добавить на форму компонент FontDialog (Dialogs)., присвоить имя fontD_1 Для пункта меню Формат/Шрифт ввести следующий код:
If fontd_1.Execute Then
Begin
Document.SelAttributes.Name:=FONTd_1.Font.Name;
Document.SelAttributes.Size:=FONTd_1.Font.Size;
End;
2. Самостоятельно дополнить код, чтобы все выбранные атрибуты шрифта были применены к выделенному тексту.
3. Добавить на форму компонент ColorDialog (Dialogs)., присвоить имя ColorD_1. Добавить в пункт меню Формат подпункт Цвет.
4. Самостоятельно ввести код для изменения цвета шрифта выделенного текста.
5. Проверить работу приложения.
6. Добавить компоненты FindDialog и ReplaceDialog, изменить имена fd_1 и rd_1 соответственно.
7. Для пункта меню Правка/Найти ввести код:
If fd_1.Execute Then Begin End;
8. Для объекта Fd_1 выбрать событие OnFind и ввести код:
FinStr:=fd_1.FindText;
k:=pos(FinStr,document.Text);
If k<>0 Then
Begin
document.SelStart:=k -1;;//начало выделения текста
document.SelLength:=length(finstr); //выделение текста
document.SetFocus;
End
Else ShowMessage('Текст не найден);
9. Для пункта меню Правка/Заменить ввести код:
If rd_1.Execute Then Begin End;
10. Для объекта rd_1 выбрать событие OnReplace и ввести код:
FinStr:=rd_1.FindText;
k:=pos(FinStr,document.Text);
If k<>0 Then
Begin
document.SelStart:=k -1
document.SelLength:=length(finstr);
document.SelText:=rd_1.replaceText;.// замена
End
Else ShowMessage('Текст не найден’);
11. Добавить на форму компонент SaveDialog (Dialogs), присвоить имя sd_1, а свойству Filter значение - Документ|*.Txt. Самостоятельно ввести программу для сохранения содержимого текстового окна в файл.
12. Добавить на форму компонент OpenDialog (Dialogs), присвоить имя od_1, а свойству Filter значение - Документ|*.Txt. Самостоятельно ввести программу для открытия файла и вывода его содержимого в текстовое окно.
13. Проверить работу приложения. Результат показать преподавателю.