Московский государственный университет имени М.В.Ломоносова
Опубликован: 01.11.2004 | Доступ: свободный | Студентов: 11275 / 456 | Оценка: 4.12 / 4.01 | Длительность: 19:20:00
ISBN: 978-5-9556-0077-9
Специальности: Программист
Лекция 25:

Библиотека классов VCL среды проектирования Delphi. Приложения и диалоги

< Лекция 24 || Лекция 25: 123 || Лекция 26 >

Создание и освобождение форм

Главная форма приложения

По умолчанию при добавлении в проект новой формы для нее в главном файле приложения автоматически формируется строка кода для создания формы.

Например:

Application.CreateForm (TForm1, Form1);.

Для добавления в проект новой формы достаточно выполнить команду меню File|New Form.

Окно свойств проекта позволяет определить:

  • главную форму приложения - файл, выполняемый первым;
  • список автоматически создаваемых форм;
  • список доступных форм - чтобы их использовать, их надо будет создать.

Если приложение содержит много форм, то для автоматического создания всех форм может не хватить памяти. Более рационально создавать формы по мере необходимости.

Для создания формы используется метод Create.

Созданная форма может быть отображена:

  • как обычный диалог - вызовом метода Show ;
  • как модальный диалог - вызовом метода ShowModal.

Использование модальной формы

Выполнение модальной формы завершается сразу после вызова метода ShowModal, поэтому память из под нее следует освобождать в вызывающей форме вызовом метода Free.

Например:

Form2:=TForm2.Create(self) ;
Form2.ShowModal;
Form2.Free;

Результат выполнения модальной формы устанавливается свойством ModalResult командных кнопок. Для того чтобы проверить код ответа (какая кнопка была нажата), следует сравнить значение, возвращаемое методом ShowModal.

Например:

if Form2.ShowModal = mrOk then 
// Нажата кнопка Ок
else Abort;   // Завершение приложения

Для закрытия модального диалога не следует вызывать метод Close, достаточно использовать командные кнопки с установленным значением свойства ModalResult.

Использование немодальной формы

Время жизни обычного немодального диалога неопределенно и не завершается после вызова метода Show. Поэтому обычный диалог следует завершать в обработчике события OnClose.

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

Если перед запуском диалога он был создан (не является автоматически создаваемым), то после его закрытия следует освободить занимаемую им память. Это выполняется в обработчике события OnClose вызовом метода Release.

Классы стандартных диалогов

Страница Dialogs палитры компонентов содержит ряд компонентов, предназначенных для реализации различных стандартных диалогов. Это диалоги для открытия файла, сохранения файла, выбора цвета или шрифта, открытия или сохранения графического файла.

Стандартный диалог открывается при вызове метода Execute. При выборе пользователем значения или щелчке пользователя на кнопке OK возвращается значение True. Если пользователь нажал кнопку Cancel или клавишу Escape, то выполнение стандартного диалога возвращает значение False. Для настройки появления и поведения диалога используется свойство Options. Чтобы закрыть диалог программно, следует вызвать метод CloseDialog.

В следующей таблице приведено описание стандартных диалогов, доступных посредством страницы Dialogs палитры компонентов.

Класс Описание действия
TOpenDialog Отображает стандартный диалог Open(имя выбранного файла указываетсяв свойстве FileName)
TSaveDialog Отображает стандартный диалог Save
TOpenPictureDialog Отображает стандартный модальный диалог для выбора и открытия графических файлов. Этот диалог идентичен диалогу Open, но имеет дополнительно панель для просмотра изображения
TSavePictureDialog Отображает стандартный диалог для сохранения графических файлов. Этот диалог имеет панель для просмотра изображения
TFontDialog Выводит стандартный диалог Font, используемый для определения шрифта, размера и стиля отображения данных
TColorDialog Отображает стандартный диалог Color (выбранный цвет указывается в свойстве Color)
TPrintDialog Отображает стандартный диалог Print
TPrinterSetupDialog Отображает стандартный диалог Printer Setup
TFindDialog Отображает стандартный диалог Find
TReplaceDialog Отображает стандартный диалог Replace

Следующий пример иллюстрирует использование стандартного диалога для выбора имени открываемого файла:

var   F: TextFile;  S: string;
begin
  if OpenDialog1.Execute then  // Показать диалог Open
  begin
   AssignFile(F, OpenDialog1.FileName);  // Назначить 
           // файловой переменной имя выбранного файла
   Reset(F);
   Readln(F, S);      //Прочитать первую строку файла
   Edit1.Text := S; // Поместить строку в компонент TEdit 
    CloseFile(F);      // Закрыть файл
  end;
end;
< Лекция 24 || Лекция 25: 123 || Лекция 26 >
Александр Демьяненко
Александр Демьяненко

Можно ли сдавать один и тот же тест несколько раз?
Или же один и тот же тест можно сдать лишь однажды?

Максим Стогний
Максим Стогний

Добрый день!

Скажите, пожалуйста, если в терминологии объектно-ориентированного программирования функции также называются методами или методами - членами класса, в примере объявления указателя на метод использовали в формальном описании оба названия:

тип_метода (имя_класса::*имя_метода_указателя)
    (список параметров);
тип_функции (*имя_ функции_указателя)
    (список параметров);

при этом можно было  тип_функции во втором описании заменить на тип_метода? Т.е.:

тип_метода (*имя_ метода_указателя)
    (список параметров);