Стандартные диалоговые окна
Подготовка буфера для имени файла. Классом, указываемом при создании. Управлять операционной системой. Создать иерархию вложенных меню. Создать главное меню программы. Максимальная длина имени файла. Пользователь указал имя файла. Тест рубежного контроля № 2. Правильных ответа — хорошо. Функция не использовалась. Заполняем структуру TSaveDialog. Оконная функция позволяет. Flags… Читать ещё >
Стандартные диалоговые окна (реферат, курсовая, диплом, контрольная)
Стандартные компоненты OpenDialog, SaveDialog и аналогичные также используют чистый WinAPI код. Но необходимые для их создания функции находятся в библиотеке «commdlg32.dll». Следовательно, для того, чтобы их использовать, необходимо подключить модуль CommDlg. pas к нашему проекту (добавить его в секцию uses).
Для создания и работы с диалогами существует множество функций, но нам понадобится только одна: GetSaveFileName.
Эта функция открывает стандартное окно выбора файла для сохранения, схожее, как две капли воды, с окном, открываемым TSaveDialog’ом. Результат функции при неудачном выборе файла (нажатие кнопки отмены или другие напасти) равен нулю.
Для её использования нам необходимо описать структуру TOpenFilename, характеризующую окно диалога (фильтры, максимальная длина имени файла, выбор нескольких файлов и другие флаги).
Изменим код предыдущего примера так, чтобы при выборе пункта меню «Сохранить», открывалось стандартное диалоговое окно сохранения для выбора файла.
Для этого добавим следующий код в область обработки сообщения WM_COMMAND:
…
id_exit: // отправляем сами себе сообщение о закрытии окна.
PostMessage (hWnd, WM_CLOSE, 0, 0);
id_save:
begin.
// заполняем структуру TSaveDialog.
ZeroMemory (@SaveDialog, SizeOf (SaveDialog));
with SaveDialog do begin.
lStructSize := SizeOf (SaveDialog);
hWndOwner := hWnd;
lpstrFilter := 'Текстовые документы (*.txt)'#0'*.txt'#0#0;
lpstrDefExt := 'txt';
// папка должна существовать и файл доступен для записи.
Flags := OFN_PATHMUSTEXIST or OFN_HIDEREADONLY;
// максимальная длина имени файла.
nMaxFile := 250;
nMaxFileTitle := nMaxFile;
GetMem (lpstrFile, nMaxFile);
// подготовка буфера для имени файла.
ZeroMemory (lpstrFile, nMaxFile);
end;
if GetSaveFileName (SaveDialog) then begin.
// пользователь указал имя файла.
GetMem (p, 32*1024);
GetWindowText (hMemo, p, 32*1024);
AssignFile (F, SaveDialog. lpstrFile);
Rewrite (F, 1);
BlockWrite (F, p^, Length (p));
CloseFile (F);
FreeMem (p);
end;
FreeMem (SaveDialog.lpstrFile);
end;
Проектное задание Модифицировать программу, полученную в конце модуля, так, чтобы при изменении размеров окна элементы управления меняли свои позиции и размеры. Добавить возможность загрузки текстового файла.
Указание: обработать сообщение WM_RESIZE, изменять размеры компонентов функцией SetWindowRect.
Тест рубежного контроля № 2.
Тест содержит 5 заданий, на выполнение которых отводится 3 минуты. Выберите наиболее правильный, по Вашему мнению, вариант ответа и отметьте его любым значком в бланке ответов.
1. Любая программа под Windows, имеющая окна и интерфейс пользователя должна содержать. | |||
1). | Цикл обработки сообщений. | 2). | Точку входа. |
3). | Описание класса окна. | 4). | Все вышеперечисленное. |
2. Оконная функция позволяет. | |||
1). | Закрыть приложение. | 2). | Управлять операционной системой. |
3). | Задавать особую реакцию приложения на некоторые сообщения. | 4). | Необходима для поддержания цикла сообщений. |
3. Для создания кнопки необходимо создать окно функцией CreateWindowEx c классом: | |||
1). | TButton. | 2). | Button. |
3). | Заранее зарегистрированным классом с помощью RegisterClass. | 4). | BitBtn. |
4. Создание однострочного и многострочного редактора отличаются. | |||
1). | Набором констант, определяющих стили. | 2). | Классом, указываемом при создании. |
3). | Всем вышеперечисленным. | 4). | Не отличаются — меняются лишь размеры. |
5. Функция CreatePopupMenu позволила в одном из приведенных выше примеров. | |||
1). | Создать иерархию вложенных меню. | 2). | Функция не использовалась. |
3). | Создать всплывающее меню. | 4). | Создать главное меню программы. |
Бланк ответов.
№. | ||||
1). | ||||
2). | ||||
3). | ||||
4). | ||||
5). |
Критерии оценки.
- 4 и более правильных ответов — отлично
- 3 правильных ответа — хорошо
- 2 правильных ответа — удовлетворительно
- 1 и менее правильных ответов — неудовлетворительно