Стандартные диалоги
В 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;
Дата добавления: 2015-04-10; просмотров: 882;