Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Delphi (Колосов).pdf
Скачиваний:
77
Добавлен:
11.05.2015
Размер:
2.57 Mб
Скачать

Begin With OpenDialog1 do Begin Filter:=’Паскалевские файлы | *.pas’;

If Execute then Memo1.Lines.LoadFromFile(FileName); End;

End;

Приведем список остальных стандартных диалогов. TSaveDialog – сохранение файлов, TOpenPictureDialog – открытие картинки, TSavePictureDialog – сохранение картинки, TFontDialog – выбор шрифта,

TColorDialog – выбор цвета,

TPrintDialog – выбор текущего принтера из списка зарегистрированных в операционной системе,

TPrinterSetUpDialog – настройка параметров печати, TFindDialog – поиск образа в тексте, TReplaceDialog – поиск образа и его замены в тексте,

TPageSetUpDialog – настройка параметров печатаемой страницы.

23.2. Типовые диалоги

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

Procedure ShowMessage(const Msg:String); – вывод на экран окна сообщения с текстом Msg и одной кнопкой Ok. Положение окна определяет сама операционная система.

Например:

Рис.23.1. Вид окна диалога процедуры ShowMessage

113

Procedure ShowMessagePos(const Msg:String; x,y:Integer); – вывод окна диалога, где x и y определяют положение на экране верхнего левого угла окна.

Function (const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; – вывод окна диалога с возможным выбором ответа на сообщение Msg. Здесь второй параметр определяет тип диалога по отображаемому в окне значку. Возможны следующие варианты значков:

mtWarning – предупреждение , mtError – ошибка ,

mtInformation – информационное сообщения – ,

mtConfirmation – знак вопроса , mtCustom – отсутствие значка.

В окне диалога можно расположить любое множество предопределенных кнопок с текстом:

mbYes

– 'Yes' – да,

mbNoA

– 'No' – нет,

mbOK

– 'OK' – хорошо,

mbCancel

– 'Cancel' – закончить,

mbAbort

– 'Abort' – прервать,

mbRetry

– 'Retry' – повторить,

mbIgnore

– 'Ignore' – игнорировать,

mbAll

– 'All' – для всех,

mbNoToAll – 'No to All' – не для всех, mbYesToAll – 'Yes to All' – да, для всех.

Последний формальный параметр определяет номер странички из файла помощи, которая будут появляться, если нажать клавишу F1.

Функция возвращает код нажатой кнопки. Коды определяются текстовыми константами, такими же, как и множество кнопок, только начинаются они с приставки «mr» вместо «mb».

Рассмотрим пример использования этого диалога:

Case MessageDlg(’Продолжать выполнение программы?’, mtConfirmation, [mbYes,mbNo],0) of mrYes:ShowMessage(’Нажата кнопка – Да’); mrNo:ShowMessage(’Нажата кнопка – Нет’);

end;

В результате вызова функции MessageDlg появится следующее окно с двумя кнопками:

114

Рис.23.2 Вид окна диагола MessageDlg

Нажатие любой из кнопок будет сопровождаться появлением сообщения «Нажата кнопка – Да» или «Нажата кнопка – Нет».

Function InputBox(const ACaption, APrompt, ADefault: string): string; –

вывод окна диалога для ввода строки. Здесь: ACaption – заголовок окна диалога, APrompt – пояснение для вводимого текста, ADefault – начальное значение строки ввода.

Например, следующий оператор

S:=InputBox(’Заголовок окна’, ’Введите имя файла’, ’c:\my\p1.pas’);

вызовет появление следующего окна для ввода текста:

Рис.23.3. Вид окна диалога InputBox

24. ФОРМА, ПРИЛОЖЕНИЕ И ГЛОБАЛЬНЫЕ ОБЪЕКТЫ

24.1. Форма и ее свойства

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

Property FormStyle:TFormStyle; – стиль формы. Стиль может принимать следующие значения:

fsNormal

– обычная форма;

fsMDIForm

– главная форма многодокументального интерфейса;

fsMDIChild

– дочерняя форма многодокументального интерфейса. Для

многодокументного интерфейса (Multi Document Interface – MDI) характерно то, что дочерние формы могут создаваться только в границах основной MDI формы;

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

115

Таким значением формы следует пользоваться очень осторожно, так как она может просто «мозолить» глаза;

Property BorderIcons:TBorderIcons; – множество, определяющее наличие значков в заглавии окна. Возможны следующие значения элементов множества:

biSystemMenu – значек вызова системного меню, обычно – «закрыть окно», biMinimize – значек свертывания формы,

biMaximize – значек развертывания формы, biHelp – значек вызова справочной службы;

Property BorderStyle:TFormBorderStyle; – стиль границы формы. Возможны

следующие варианты:

bsNone – форма не имеет рамки и заголовка и не может перемещаться или изменять свои размеры,

bsSingle – форма с рамкой в один пиксель, она не может менять свои размеры,

bsSizeable – форма с обычной рамкой,

bsDialog – форма не может менять свои размеры,

bsToolWindow – подобно bsSingle, но с уменьшенным по высоте заголовком, bsSizeToolWin – подобно bsSizeable, но с уменьшенным по высоте заголовком;

Property Position:Tposition; – определяет положение и размер формы в момент ее окрытия. Возможны следующие значения:

poDesigned –все определяется на этапе проектирования формы, poDefault –положение и размеры окна определяет самой ОС Windows,

poDefaultPosOnly – Windows определяет только положение окна на экране, poDefaultSizeOnly – Windows определяет только размеры окна на экране, poScreenCenter – форма располагается по центру экрана,

Property Icon:TIcon; – значок окна, для главной формы, и значек приложения,

Property Menu:TMainMenu; – основное меню формы,

Property Canvas:TCanvas; – холст формы.

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

Var gr:TBitMap; // Определяем указатель на картинку

Procedure TForm1.FormCreate(Sender:TObject); // Создание формы

Begin

Gr:=TbitMap.Create; // Выделяем память под картинку

Gr.LoadFromFile(’c:\my\pic1.bmp’); // Загружаем картинку из файла

End;

Procedure TForm1.FormPaint(Sender:TObject); // Перерисовка формы

Begin

Canvas.Draw(0,0,gr); // Отображаем картинку на форме

End;

116