Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Развитие простейшей программы




Созданное ранее простейшее приложение очень примитивно, поэтому будем расширять его функциональность, постепенно добавляя все новые возможности. Для этого, если проект не открыт, надо прежде всего открыть его по команде File / Open Project, а еще проще – по команде File / Reopen.

  1. Добавим возможность вывода диалогового окна при закрытии приложения. Для этого в обработчик события выбора кнопки закрытия вместо простого вызова Close надо ввести следующий код:

if MessageDlg('Закрыть?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Close;

Здесь вызов MessageDlg имеет следующие параметры:

· текст сообщения

· тип сообщения (можно использовать константы mtCustom, mtInformation, mtWarning, mtError, mtConfirmation)

· комбинация кнопок в сообщении (можно использовать константы mbOk, mbCancel, mbYes, mbNo, mbAbort, mbRetry, mbIgnore)

· указатель на изображение, используемое в окне сообщения (или ноль при отсутствии оного)

Вызов возвращает код выбранной в окне кнопки, который можно распознать с помощью одной из констант mrOk, mrCancel, mrYes, mrNo, mrAbort, mrRetry, mrIgnore.

 

  1. Добавим кнопки для уменьшения/увеличения размера шрифта текста. Для этого:
    • в нижней части верхней панели разместить еще одну панель, убрать ее заголовок и выровнять вниз; новую панель можно использовать для размещения кнопок, управляющих размером текста
    • на новой панели разместить две кнопки, у которых в свойстве Caption ввести необходимые надписи (например – Увеличить Шрифт), а в свойстве Name – имена объектных переменных (например – ButtonFontSizeUp)
    • создать 2 обработчика события выбора каждой из кнопок, содержащий код увеличения/уменьшения значения подсвойства Size свойства Font компонента Label1:

if Label1.Font.Size > 50 then ShowMessage('Больше низ-з-зя!')

else Label1.Font.Size:= Label1.Font.Size + 2;

Обратим внимание, что при вводе кода в окне Редактора Кода можно использовать оперативные подсказки: после набора имени компонента Label1 и ввода точки сразу появляется список возможных свойств и методов этого компонента, из которого можно выбрать необходимое свойство (например, Font) не вводя его с клавиатуры. Точно также, после ввода имени Font и последующей точки появляется список свойств этого объекта с возможностью выбора необходимого (например – свойства Size)

· сохранить проект (можно в том же каталоге) и проверить работу приложения

 

  1. Добавим компонент Edit для ввода размера шрифта. Для этого:

· на панели с кнопками разместим компонент-редактор Edit, очистим его свойство Text и изменим имя (свойство Name) на более осмысленное (например – EditFontSize)

· уменьшим ширину редактора (свойство Width) до значения 40

· слева от редактора разместим компонент-текст Label2 с краткой поясняющей надписью

· справа от редактора разместим кнопку для изменения размера шрифта текста в соответствии с введенным в редакторе значением

 

 

· создать обработчик нажатия кнопки изменения размера шрифта, который должен:

o проверить текущее значение редактора (свойство Edit1.Text) на пустоту

o если строка в редакторе пустая, вывести сообщение с помощью ShowMessage

o если строка не пустая, то преобразовать текст в числовое значение с помощью стандартной функции StrToInt, проверить полученное число на попадание в допустимый диапазон (например – от 8 до 50) и либо вывести предупреждение, либо установить размер шрифта у компонента Label1 в соответствующее значение

· сохранить проект и проверить его работу

 

  1. Добавим возможности изменения цвета и типа шрифта с помощью стандартных диалогов. Для этого:

· разместим на форме (в любом месте) компонент ColorDialog со страницы Dialogs; в отличие от всех ранее использованных компонентов этот компонент при выполнении программы не виден и поэтому его расположение на форме не имеет значения

· добавим на форму еще одну кнопку для изменения цвета шрифта и установим ее необходимые свойства (Caption и Name)

· в обработчике этой кнопки надо ввести следующий код, запускающий стандартный диалог выбора цвета и в случае его успешного закрытия – установку цвета текста в компоненте Label1 в выбранный цвет:

if ColorDialog1.Execute then Label1.Font.Color:= ColorDialog1.Color;

· аналогично, для управления всеми характеристиками шрифта надо разместить на форме (в любом месте) стандартный компонент FontDialog, добавить кнопку для изменения шрифта и создать ее обработчик следующего вида:

if FontDialog1.Execute then Label1.Font:= FontDialog1.Font;

· после сохранения проекта выполнить его и проверить работоспособность

 

  1. Добавим в приложение меню, дублирующее некоторые ранее введенные управляющие кнопки: Изменить Цвет, Изменить Шрифт, Закрыть Окно. Для этого:

· разместить в любом месте формы компонент MainMenu

· двойным щелчком на этом компоненте запустить визуальный генератор меню

· ввести в свойстве Caption текст первого пункта основного меню (например – Изменить)

· перейти к соседнему пункту основного меню и ввести в его свойство Caption текст Закрыть

· вернуться к предыдущему пункту и оформить последовательно пункты его раскрывающегося меню, введя тексты Цвет Шрифта и Тип Шрифта

 

 

· двойным щелчком на пункте Цвет Шрифта создать обработчик данного пункта, код которого может просто содержать вызов подпрограммы-обработчика соответствующей кнопки

· аналогично создать обработчик для второго пункта Тип Шрифта

· двойным щелчком на пункте Закрыть создать обработчик, содержащий вызов подпрограммы, созданной для кнопки Закрыть:

ButtonCloseClick(Sender);

· такой подход позволяет выполнять абсолютно одинаковые действия как с помощью кнопок, так и с помощью команд меню

· дополнительно для каждого пункта меню можно ввести горячие клавиши, выбрав в списке для свойства ShortCut необходимую клавишу или их комбинацию

· после сохранения проекта выполнить его

 

  1. Задание: реализация основных операций со списками

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

 

 

1. Создать новый проект, установить для формы свойства Caption и Name, разместить на форме нижнюю панель, разместить верхнюю панель на всю оставшуюся клиентскую область и в ее нижней части добавить еще одну небольшую панель для размещения управляющих кнопок Добавить и Удалить

2. На верхней панели разместить компонент ListBox, над ним – текстовую надпись; ширину окна для списка сделать достаточной для отображения фамилий студентов (100-120 пикселов); в простейшем случае никакие свойства списка можно не менять

3. Правее списка разместить компонент-редактор для ввода фамилий и соответствующую текстовую надпись, очистить свойство Text у редактора и сделать ширину окна редактора достаточной для ввода фамилий

4. Создать обработчик кнопки Добавить, код которого должен проверить свойство Text редактора Edit на пустоту и либо вывести предупреждающее сообщение (ShowMessage), либо добавить текст из редактора в список:

Listbox1.Items.Add (Edit1.Text);

Здесь используется основное свойство компонента-списка – свойство Items, представляющее собой внутреннее хранилище элементов списка и имеющее много полезных подсвойств и методов для удаления, добавления, сортировки элементов, работе с файлами. Например, метод Add добавляет в список новую строку либо в конец списка, либо (для упорядоченных списков) в нужное место по алфавиту

5. Создать обработчик кнопки Удалить для удаления из списка выделенного элемента:

Listbox1.Items.Delete (Listbox1.ItemIndex);

Здесь свойство ItemIndex хранит номер текущего выбранного в списке элемента, а метод Delete удаляет его из списка

6. Сохранить проект в своем каталоге и проверить правильность его работы

7. Для возможности работы с отсортированными списками добавить рядом со списком и редактором компонент GroupBox, в свойство Caption ввести название группы (например – Сортировка), внутри группы разместить два зависимых переключателя RadioButton с надписями Включена и Выключена, один из них установить во включенное состояние (свойство Checked = true) и соответственно установить список в отсортированное или неотсортированное по умолчанию состояние (свойство списка Sorted)

8. Вместо отдельных компонентов GroupBox и RadioButton можно использовать их комбинацию – компонент RadioGroup

9. Двойным щелчком на каждой из радиокнопок создать их обработчики для перевода списка в соответствующее состояние:

Listbox1.Sorted:= true; // или false

10. Сохранить проект и проверить его работу

11. Добавить возможность работы с файлами, для чего надо воспользоваться свойством Items, имеющим два очень полезных метода SaveToFile и LoadFromFile. В простейшем случае можно жестко задать имя текстового файла как параметр этих вызовов. Сами вызовы должны отрабатываться в обработчиках соответствующих кнопок, которые надо разместить рядом с кнопками Добавить и Удалить:

ListBox1.Items.SaveToFile ('test.txt');

12. Сохранить проект и проверить его новые возможности: ввести в список несколько фамилий, сохранить их в текстовом файле, проверить с помощью Проводника появление файла в текущем каталоге проекта, загрузить список из файла

13. Добавить возможность выбора имени и расположения текстового файла со списком строк. Для этого надо воспользоваться стандартными диалогами открытия и сохранения файла (компоненты OpenDialog и SaveDialog страницы Dialogs). Эти компоненты не видны при выполнении приложения, поэтому их можно разместить в любом месте формы.

14. Для этих компонентов удобно заранее установить фильтры отбора файлов. Для тренировки фильтр для компонента OpenDialog установим так, чтобы можно было выбирать показ либо только текстовых файлов, либо всех файлов. Для установки фильтров используется специальный Редактор Фильтров. Его активизация выполняется так: выбрать на форме компонент OpenDialog, в Инспекторе Объектов выбрать свойство Filter и щелкнуть на кнопке с тремя точками. В левой колонке ввести текст описания фильтров (строку “Текстовые файлы” и строку “Все файлы”), а в правой колонке – соответствующие шаблоны (*.txt и *.*)

15. Аналогично, для компонента SaveDialog установить один фильтр только для текстовых файлов, причем свойство DefaultExt компонента SaveDialog надо установить в значение txt

16. После этого надо изменить обработчики кнопок сохранения в файле и загрузки из файла так, чтобы можно было работать с файлами, имена которых задаются с помощью соответствующих диалогов. Имена выбранных в диалогах файлов возвращаются в свойстве FileName, поэтому код обработчиков может выглядеть так:

if SaveDialog1.Execute then ListBox1.Items.SaveToFile(SaveDialog1.FileName);

17. Сохранить проект и проверить его работу. Теперь можно сохранять файл из списка в любом месте и под любым именем, а также – загружать в список строки из любых текстовых файлов.

18. Добавить в приложение возможность использования меню. Меню должно содержать 4 позиции: Файл (с командами Сохранить и Загрузить), Список (с командами Добавить и Удалить), Сортировка (с командами Включить и Выключить) и Выход. Предусмотреть использование горячих клавиш для быстрого выполнения команд.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных