- •Введение
- •1Алгоритм. Разработка алгоритмов. Блок-схемы
- •3Операторы языка Delphi
- •3.1Оператор присваивания
- •3.2Оператор ввода-вывода
- •3.3Составные операторы
- •3.4Условный оператор
- •3.5Цикл с предусловием
- •3.6 Цикл с постусловием
- •3.7Цикл с параметром (счетчик)
- •3.8Массивы
- •3.9Строки
- •3.10Записи
- •3.11Множества
- •4Отладчик программы Debugger
- •5Среда Delphi
- •6Создание интерфейса приложения
- •7Подпрограммы
- •7.1Процедуры
- •7.2Функции
- •7.3Параметры и аргументы
- •8Особенности объектно-ориентированного программирования
- •9Работа с кнопкой
- •10Работа с текстом
- •10.1Работа с надписью
- •10.2Функции преобразования числа в строку и строки в число
- •10.3Работа в однострочном редакторе (Edit, LabeledEdit)
- •10.4Работа с многострочным редактором Memo
- •11Диалоги, сообщения
- •11.1Процедура ShowMessage
- •11.2Процедура MessageDlg
- •11.3Процедура InputBox
- •11.4Процедура InputQuery
- •11.5Стандартные диалоги
- •12Работа с компонентом StringGrid
- •13Построение графика функции
- •14Файлы
- •15Работа со списками и переключателями
- •15.1 Компонент ChekBox
- •15.2Компонент RadioButton
- •16Исключительные ситуации
- •17Работа с несколькими модулями
- •18Работа с формой
- •Содержание
- •Список использованных источников
11.3Процедура InputBox
Процедура InputBox (const ACaption, APromt, ADefault:String):String отображает диалоговое окно , которое служит для ввода информации. В окне имеется поле для ввода строки с надписью и две кнопки Ok и Cancel. Параметр ACaption задает заголовок окна, APromt - содержит поясняющую надпись, ADefault – определяет строку по умолчанию.
11.4Процедура InputQuery
Процедура InputQuery(const ACaption, APromt:String; var Value: String): Boolean запоминает параметр Value и возвращает True, если пользователь нажал OK. Окно по внешнему виду не отличается от окна функции InputBox.
Пример 12. Ввод шага расчета функции.
Дополним программу предыдущего примера функцией InputBox, с помощью которой будут задаваться шаг (h:real). Для этого вставьте в метод «нажатие на кнопку» строку
h:=StrToFloat(InputBox('Ввод шага расчета','Введите шаг','1'));
Результатом выполнения данной функции является окно, представленное на рисунке 21.
Рисунок 21 - Окно для выбора шага (Использование функции InputBox)
11.5Стандартные диалоги
В 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;
