Л.р№4---для М33

advertisement
ЛАБОРАТОРНАЯ РАБОТА 4
Тема: Создание простейшего текстового редактора.
Цель работы:
компонентов.
Освоить
использование
основных
диалоговых
Задание 1. Выполните следующие действия
1. Поместите на форму элемент MenuStrip. Структура меню должна иметь
вид:
Рисунок 4.1 Структура меню
2. При выборе пункта Автор должно появляться информационное окно с
данными автора. При выборе пункта Выход приложение должно завершать
свою работу.
3. Запустите приложение. Проверьте работу приложения.
4. Поместите на форму элемент всплывающего меню – ContextMenuStrip.
Всплывающее меню появляется в работающем приложении при щелчке
правой кнопкой мыши по форме. Это меню должно содержать
пункты Автор, Сохранить, Выход с назначенными им клавишными
эквивалентами для быстрого выполнения пунктов меню. Когда
размещенный элемент контекстного меню на форме скрыт, достаточно
щелкнуть на него на специальной панели снизу от формы и элемент тут же
станет виден и доступен для редактирования.
5. Для того чтобы форма могла использовать объект ContextMenuStrip1,
определите значение свойства ContextMenuStrip из выпадающего списка
для формы.
Рисунок 4.2 Структура меню
6. Для создания обработчиков событий, поступающих от всплывающего меню,
для пункта Автор определите значение события Click. Для этого нужно
перейти на вкладку События и выбрать из раскрывающегося списка
название
процедуры,
которое
уже
использовалось
для
пункта Автор главного меню.
Рисунок 4.3 Структура меню
Аналогичным
образом
определите
значение
события Click для
пункта Выход. Таким образом, события для разных объектов будут
совместно использовать один и тот же обработчик события.
7. Запустите приложение и проверьте работу всплывающего меню.
8. Поместите на форму элемент Label. Присвойте свойству Text значение Имя файла.
9. Поместите на форму компонент TextBox под компонентом Label. В
дальнейшем здесь будет имя редактируемого файла.
10. Поместите на форму объект RichTextBox (многострочный редактор),
измените
его
размер
и
выровняйте
визуальные
компоненты,
расположенные на форме. Установите вертикальную и горизонтальную
полосы прокрутки, используя свойство ScrollBars объекта richTextBox1.
Полосы прокрутки будут появляться при необходимости.
Теперь приложение будет выглядеть так
Рисунок 4.4 Вид приложения
11. Поместите на форму компоненты openFileDialog и saveFileDialog. Для
объектов openFileDialog1 и saveFileDialog1 определите свойства DefaultExt,
Filter, InitialDirectory, Title, которые имеют следующий смысл
Свойство
FileName
Назначение
Содержит маршрут поиска и выбранный файл
при успешном завершении диалога.
Filter
Используется для фильтрации (отбора)
файлов, показываемых в диалоговом окне.
Строка фильтра должна содержать описание
фильтра, за которым следуют вертикальная
черта (|) и шаблон фильтра. Строки
различных вариантов фильтра также должны
разделяться вертикальной чертой. Например:
"Текстовые файлы (*.txt)|*.txt|
InitialDirectory
Содержит имя начального каталога.
DefaultExt
С помощью свойства DefaultExt формируется
полное имя файла, если при ручном вводе
пользователь не указал расширение. В этом
случае к имени файла прибавляется
разделительная точка и содержимое этого
свойства.
Title
Содержит заголовок диалогового окна.
12. Для активизации диалогового компонента openFileDialog1 используйте его
метод ShowDialog() в обработчике события Click для пункта
меню Открыть. Если пользователь закрывает диалоговое окно, щелкнув
на кнопке OK, то функция ShowDialog() возвращает значение DialogResult::OK
и содержимое файла загружается в многострочный редактор.
Например,
private: System::Void открытьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
richTextBox1->Text = System::IO::File::ReadAllText(openFileDialog1>FileName);
}
Тогда при выборе пункта Открыть будет открываться такое окно
Рисунок 4.5 Диалоговое окно открытия файла
13. Для проверки существования файла используйте свойство CheckFileExists,
поскольку открываться может только уже существующий файл.
14. Имя
загружаемого
файла
свойстве FileName компонента OpenFileDialog и
строке TextBox под надписью «Имя файла».
сохраняется
должно отобразиться
в
в
15. Для обработки события OnClick пункта Открыть всплывающего меню
подключите ту же процедуру, что используется для пункта Открыть
главного меню.
16. Аналогичные действия проделайте и с пунктом Сохранить. Содержимое
редактора richTextBox1 загружается в файл методом SaveFile(). При
сохранении файла в диалоговом окне должно предлагаться имя, заданное в
компоненте textBox1.
private: System::Void сохранитьToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e) {
saveFileDialog1->FileName=textBox1->Text;
if ( saveFileDialog1->ShowDialog() ==
System::Windows::Forms::DialogResult::OK &&
saveFileDialog1->FileName->Length > 0 )
{
richTextBox1->SaveFile( saveFileDialog1->FileName,
RichTextBoxStreamType::PlainText);
}
}
17. Для того, чтобы курсор установился в окно редактора, необходимо после
загрузки файла в окно редактора установить значение свойства
ActiveControl равным richTextBox1. Поэтому в процедуру обработки
события OnActivated формы добавьте следующий оператор:
Form1::ActiveControl=richTextBox1;
18. Запустите приложение и проверьте его работу.
19. Создайте
фильтры
файлов,
используя
встроенный
редактор
свойства Filter диалоговых компонентов (вариант выбирается по последней
цифре шифра студента):
1) исполняемые файлы (exe), все файлы, текстовые файлы (txt)
2) doc-файлы, все файлы, pas-файлы
3) asm- файлы, исполняемые файлы (exe), bat- файлы
4) все файлы, bmp-файлы, текстовые файлы (txt)
5) pas-файлы, cpp-файлы, все файлы
6) исполняемые файлы (exe), все файлы, текстовые файлы (txt)
7) doc-файлы, все файлы, pas-файлы
8) asm- файлы, исполняемые файлы (exe), bat- файлы
9) все файлы, bmp-файлы, текстовые файлы (txt)
10) pas-файлы, cpp-файлы, все файлы
Контрольные вопросы
1. Какие компоненты используются для организации диалога при
сохранении и открытии файлов?
2. Какой метод активизирует диалоговые компоненты?
3. Что такое контекстное меню?
4. Как
осуществляется
совместное
использование
одного
обработчика различными компонентами?
5. Поясните тексты методов приложения.
Download