Стандартные диалоги

В Delphi имеется страница Dialog Палитры компонентов, на которой расположены диалоги общего назначения (рисунок 22). Эти диалоги используются многими приложениями Windows для выполнения таких операций как открытие, сохранение и печать файлов, выбор шрифтов. цвета и т.д.

Рисунок 22 - Страница Диалог Палитры компонентов

Все стандартные диалоги относятся к невизуальным компонентам, т.е. во время выполнения приложения значок компонента на форме виден не будет. Для вызова любого стандартного диалога используется метод Execute – функция типа Boolean. При закрытии диалога кнопкой ok значение функции Execute возвращает значение true, а при отмене диалога – значение false.

Рассмотрим поподробнее свойства диалогов SaveDialog и OpenDialog – стандартные диалоги сохранения и открытия файла:

· FileName типа String указывает имя и полный путь файла, выбранного в диалоге. Имя файда отображается в строке редактирования и является результатом диалога

· Title типа String задает заголовок окна. По умолчанию используется заголовок «Открытие файла» («Сохранение файла»)

· InitialDir типа String – задается каталог, содержимое которого отображается при вызове диалога. По умолчанию отображается содержимое текущего каталога.

· DefaultExt типа String – задает расширение, которое автоматически подставляется к имени файла, если пользователь не указал расширение имени.

· Filter типа String – задает маски имен файлов, которые отображаются в раскрывающемся списке «Тип файлов». В окне диалога видны те файлы, которые совпадают с указанной маской. По умолчанию это свойство является пустым, поэтому будет отображаться все содержимое каталога.

Пример 13. Рассчитать значения функции на интервале [а,b] с шагом h. Результаты расчета поместить в многострочный редактор Memo и записать в текстовый файл.

Для решения данной задачи дополним предыдущий пример компонентами Memo, BitBtn и SaveDialog. В результате получим форму, представленную на рисунке 23.

Рисунок 23 - Внешний вид формы на этапе разработки

Выделите значок компонента SaveDialog на форме и в Панели инструментов свойство DefaultExt измените на «.txt» (текстовые файлы). Далее выберите свойство Filter, и перед вами откроется окно, изображенное на рисунке 24.

Рисунок 24 - Окно редактора фильтра

В окно редактора фильтра можно вписать все расширения, с которыми будет работать ваша программа. В данном примере выбран единственный фильтр –текстовые файлы.

Дополним событие FormShow следующим кодом, для того, чтобы до расчетов окно результатов расчета видно не было (для удобства покажем весь код):

procedure TForm1.FormShow(Sender: TObject);

begin

Form1.Edit1.Text:='';

Form1.Edit2.Text:='';

if Form1.Edit1.CanFocus then

Form1.Edit1.SetFocus;

// Скрыть компонент Memo

Form1.Memo1.Visible:=false;

// Скрыть кнопку BitBtn2 (Сохранить)

Form1.BitBtn2.Visible:=false;

end;

При нажатии на кнопку Ok должна рассчитываться функция. Ранее в примерах 12-13 мы задали диапазон и шаг расчета. Поэтому следует дописать имеющийся код самим расчетом функции и выводом результатов в Memo (для удобства покажем весь код):

procedure TForm1.Button1Click(Sender: TObject);

var

Mr:TModalResult;

a,b,h,y:real;

begin

a:=StrToFloat(Form1.Edit1.Text);

b:=StrToFloat(Form1.Edit2.Text);

if a>=b then

begin

Mr:=MessageDlg('Данные введены неверно.

Ввести заново?',mtConfirmation,

[mbYes, mbNo,mbCancel],0);

if Mr=mrYes then

Form1.FormShow(Sender);

exit;

end;

h:=StrToFloat(InputBox('Ввод шага

расчета','Введите шаг','1'));

Form1.Memo1.Visible:=true; // Показать Memo

Form1.Memo1.Clear;

while a<=b do

begin

y:=a*a;

// Добавить значения в Memo

Form1.Memo1.Lines.Add('x= '+

FloatToStr(a)+' y= '+FloatToStr(y));

a:=a+h;

end;

// Показать кнопку «Сохранить»

Form1.BitBtn2.Visible:=true;

end;

При нажатии на кнопку «Сохранить» содержимое многострочного редактора должно сохраниться в файл. Для этого напишем следующий код:

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

if Form1.SaveDialog1.Execute

then Form1.Memo1.Lines.SaveToFile

(Form1.SaveDialog1.FileName);

end;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: