Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Фролов

.pdf
Скачиваний:
14
Добавлен:
14.03.2016
Размер:
840.19 Кб
Скачать

В ходе дальнейшей работы программы, когда пользователь выбирает какую-либо модель станка, происходит заполнение соответствующих свойств объектов Edit техническими данными выбранного станка. За это отвечает метод ComboBox1Change класса TForm1. SQL код запроса, содержащегося в объекте ADOQuery2 выглядит следующим образом: select nmax, nmin, smax, smin, npriv from mtools where model = :model.

procedure TForm1.ComboBox1Change(Sender: TObject); begin

adoquery2.Parameters.ParamByName('model').Value:=combobox1.text; adotable1.Open;

adoquery2.Open;

edit1.Text:=adoquery2nmax.Value;

edit2.Text:=adoquery2nmin.Value;

edit3.Text:=adoquery2smax.Value;

edit4.Text:=adoquery2smin.Value;

edit10.Text:=adoquery2npriv.Value;

adoquery2.Close;

adotable1.Close; end;

2.8.7. Вывод сообщений на экран

Вывод сообщений может осуществляться посредством функций ShowMessage и MessageDlg. Рассмотрим подробно функцию MessageDlg как наиболее функциональную.

MessageDlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer.

Переменная Message содержит текст выводимого сообщения. Переменная DialogType определяет вид диалогового окна и может иметь

одно из следующих значений:

101

mtWarning – предупреждение;

mtError – сообщение об ошибке;

mtInformation – информация;

mtConfirmation – подтверждение;

mtCustom – простое сообщение.

Переменная Buttons отвечает за количество и вид отображаемых кнопок

иможет иметь следующие значения:

mbYes – отображает кнопку «Yes»;

mbNo – Отображает кнопку «No»;

mbOK – Отображает кнопку «OK»;

mbCancel – Отображает кнопку «Cancel»;

mbAbort – Отображает кнопку «Abort»;

mbRetry – Отображает кнопку «Retry»;

mbIgnore – Отображает кнопку «Ignore»;

mbAll – Отображает кнопку «All»;

mbNoToAll – Отображает кнопку «No to all»;

mbYesToAll – Отображает кнопку «Yes to all»;

mbHelp – Отображает кнопку «Help».

Переменная HelpContext определяет раздел справочной системы (если таковая предусмотрена в создаваемом проекте), который появится при нажатии на кнопку F1. Если вывод справки не предусмотрен, значение параметра равно нулю.

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

mrYes;

mrNo;

mrOK;

mrCancel;

mrAbort;

102

mrRetry;

mrIgnore;

mrAll;

mrNoToAll;

mrYesToAll.

Приведем программный код, иллюстрирующий использование функций MessageDlg и ShowMessage, и результаты их работы (рис. 2.13).

case MessageDlg('Выясним, какая кнопка нажата', mtCustom, [mbYes, mbNo, mbAbort],0) of

mrYes: ShowMessage('Нажата Yes'); mrNo: ShowMessage('Нажата No'); mrAbort: ShowMessage('Нажата Abort'); end;

Рис. 2.13. Результат работы функции MessageDlg

2.8.8. Работа с дополнительными формами

Ввести новую форму в программу можно воспользовавшись соответствующей командой главного меню File New Form. Форма создается вместе с новым модулем, описывающим ее работу.

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

103

ние многих форм занимает ресурсы и время программы. Поэтому целесообразно перенести некоторые формы в разряд доступных. Для этого необходимо выполнить команду меню Project Options и в появившемся окне (рис. 2.14) перенести интересующие формы из разряда автосоздаваемых

(Auto-create) в разряд доступных (Available).

Таким образом, главная форма Form1 остается автосоздаваемой, а дополнительные формы Form2 и Form3 необходимо создавать в ходе выполнения программы.

Для появления на экране дополнительной автосоздаваемой формы достаточно написать:

Form2.Show – в случае обычной Формы; Form2.ShowModal – в случае модальной Формы.

Рис. 2.14. Управление формами

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

if (not Assigned(Form2)) then {проверка существования формы}

104

begin

Form2:=Form2.Create(Self); {создание Формы}

Form2.Show; {(или Form2.ShowModal) показ Формы} end;

Закрытие формы осуществляется командой FormX.Close.

Формы могут быть обычными и модальными. Обычные формы позволяют свободно переходить между всеми формами, находящимися в данный момент на экране. Модальная форма в момент вызова блокирует переход между формами проекта до тех пор, пока не будет закрыта, и работа возможна только в ней.

Существует способ закрытия, присущий только модальным формам. Он используется диалоговыми окнами с вопросом, требующим подтверждения, и в других аналогичных случаях. У каждой кнопки, расположенной на форме, существует свойство ModalResult, способное принимать значения:

mrYes;

mrNo;

mrOK;

mrCancel;

mrAbort;

mrRetry;

mrIgnore;

mrAll;

mrNoToAll;

mrYesToAll;

mrNone.

При нажатии кнопки ее значение ModalResult передается свойству ModalResult формы. Это свойство отсутствует в списке свойств Формы, которые можно увидеть в Инспекторе объектов, но программно оно дос-

105

тупно (достаточно написать в тексте программы «Form2», поставить точку и выбрать искомое свойство в появившемся списке).

Нажатие кнопки со значением свойства ModalResult, отличного от mrNone, приводит к закрытию Формы, даже если у кнопки отсутствует обработчик нажатия. Затем, после закрытия формы, можно проанализировать ее свойство ModalResult и выяснить, какой ответ дал пользователь. Например:

procedure TForm1.Button1Click(Sender: TObject); begin

Form2.ShowModal;

if Form2.ModalResult=mrYes then {Этот оператор будет доступен только после закрытия формы Form2}

Form1.Caption:='Пользователь ответил положительно!'; end;

Из приведенного выше примера видно, что для доступа из одной формы к свойствам другой формы и к свойствам ее компонентов необходимо указывать имя формы, к которой происходит обращение. Также можно получить доступ к данным, использующимся в модуле, описывающим ее работу. Для этого необходимо указать имя модуля. Например, для обращения к переменной X из модуля Unit2 требуется написать Unit2.X.

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

OnClose.

Также имеется возможность осуществить блокировку закрытия формы. Это необходимо в тех случаях, когда требуется заставить пользователя выполнить определенные действия перед закрытием формы. Для использования указанной возможности необходимо воспользоваться обработчиком события OnCloseQuery. В этом обработчике определена переменная логи-

106

ческого типа CanClose. Форма будет закрыта только в том случае, когда CanClose будет иметь значение True.

Например, если создать обработчик OnCloseQuery основной формы программы следующим образом, то пользователь не сможет закрыть программу иначе как через Диспетчер задач Windows.

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin

CanClose:=False; end;

107

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1.Архангельский, А. Я. Программирование в Delphi. Учебник по классическим версиям Delphi / А. Я. Архангельский. – М. : Бином, 2008. – 816 с.

2.Единая система программной документации. Виды программ и программных документов : ГОСТ 19.101–77. – Введ. 01.01.1980. – М. : Стандартинформ, 2010.

4 с. – (Межгосударственный стандарт).

3.Единая система программной документации. Общие требования к программным документам : ГОСТ 19.105–78. – Введ. 01.01.1980. – М. : Стандартинформ, 2010.

4 с. – (Межгосударственный стандарт).

4.Единая система программной документации. Описание применения. Требования к содержанию и оформлению : ГОСТ 19.502–78. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 2 с. – (Межгосударственный стандарт).

5.Единая система программной документации. Описание программы : ГОСТ

19.402–78. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 4 с. – (Межгосу-

дарственный стандарт).

6.Единая система программной документации. Пояснительная записка. Требования к содержанию и оформлению : ГОСТ 19.404–79. – Введ. 01.01.1981. – М. : Стандартинформ, 2010. – 3 с. – (Межгосударственный стандарт).

7.Единая система программной документации. Программа и методика испытаний. Требования к содержанию и оформлению : ГОСТ 19.301–79. – Введ. 01.01.1981.

М. : Стандартинформ, 2010. – 3 с. – (Межгосударственный стандарт).

8.Единая система программной документации. Руководство оператора. Требования к содержанию и оформлению : ГОСТ 19.505–79. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 3 с. – (Межгосударственный стандарт).

9.Единая система программной документации. Руководство программиста. Требования к содержанию и оформлению : ГОСТ 19.504–79. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 2 с. – (Межгосударственный стандарт).

10.Единая система программной документации. Руководство системного программиста. Требования к содержанию и оформлению : ГОСТ 19.503–79. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 4 с. – (Межгосударственный стандарт).

11.Единая система программной документации. Стадии разработки : ГОСТ 19.102–

108

77.– Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 4 с. – (Межгосударственный стандарт).

12.Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения : ГОСТ 19.701–

90.– Введ. 01.01.1992. – М. : Стандартинформ, 2010. – 24 с. – (Межгосударственный стандарт).

13.Единая система программной документации. Текст программы. Требования к содержанию и оформлению : ГОСТ 19.401–78. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 2 с. – (Межгосударственный стандарт).

14.Единая система программной документации. Техническое задание. Требования к содержанию и оформлению : ГОСТ 19.201–78. – Введ. 01.01.1980. – М. : Стандартинформ, 2010. – 4 с. – (Межгосударственный стандарт).

15.Иванова, Г. С. Объектно–ориентированное программирование: учеб. для вузов / Г. С. Иванова, Т. Н. Ничушкина, Е. К. Пугачев ; под. ред. Г. С. Ивановой. – М. : Изд–во МГТУ им. Н.Э. Баумана, 2001. – 320 с. : ил. – (Сер. Информатика в техническом университете).

16.Карпов, В. Э. Об оформлении программной документации [Электронный ре-

сурс] / В. Э. Карпов. – 2001. – Режим доступа :http://uiits.miem.edu.ru/Karpov/ Pages/OfDoc/OfDoc.htm.

17.Свид. о гос. регистрации программы для ЭВМ № 2009615674 от 12 октября 2009 г. РФ, МПК [нет]. Оптимизация режимов резания трех стадий токарной обработки / Е. М. Фролов, А. Л. Плотников; ГОУ ВПО "ВолгГТУ". – 2009.

18.Свид. о гос. регистрации программы для ЭВМ № 2010616141 от 17 сентября 2010 г. РФ, МПК (нет) Расчет усилия зажима заготовки при токарной обработке / И. В. Борщевский, А. Л. Плотников, Е. М. Фролов; ВолгГТУ. – 2010.

19.Сухарев, М. Delphi. Полное руководство. Включая версию 2010 / М. Сухарев. – Санкт–Петербург : Наука и техника, 2010. – 1035 с.

20.Фаронов, В. В. Delphi. Программирование на языке высокого уровня / В. В. Фаронов. – Санкт–Петербург : Питер, 2009. – 639 с.

21.Delphi 7. Наиболее полное руководство / В. В. Никифоров [и др.]. – Санкт– Петербург : БХВ–Петербург, 2008. – 1216 с. – (Сер. В подлиннике).

109

ПРИЛОЖЕНИЕ

НЕКОТОРЫЕ СТАНДАРТНЫЕ ФУНКЦИИ ЯЗЫКА DELPHI

Функция / Процедура

Описание

Модуль

 

 

 

Математические

функции и процедуры

 

 

 

 

Арифметические функции и процедуры

 

 

 

 

Abs( X );

Возвращает абсолютное значение

System

 

аргумента

 

 

 

 

Ceil( X: Extended ): Integer;

Округляет значение аргумента в

Math

 

большую сторону

 

 

 

 

Exp( X: Real ): Real;

Вычисляет значение ex

System

Floor( X: Extended ): Integer;

Округляет значение аргумента в

Math

 

меньшую сторону

 

 

 

 

Frac( X: Extended ): Extended;

Возвращает дробную часть

System

 

аргумента

 

 

 

 

Frexp( X: Extended; var Mantissa: Ex-

Возвращает мантиссу и экспоненту

Math

tended; var Exponent: Integer );

аргумента

 

 

 

 

Int( X: Extended ): Extended;

Возвращает целую часть аргумента

System

 

 

 

IntPower( X: Extended; Y: Integer ):

Возводит аргумент X в целочислен-

System

Extended;

ную степень Y

 

 

 

 

Ldexp( X: Extended; Y: Integer ): Ex-

Вычисляет X.2Y

Math

tended;

 

 

 

 

 

Ln( X: Real ): Real;

Вычисляет натуральный логарифм

System

 

ln(x)

 

 

 

 

LnXP1( X: Extended ): Extended;

Вычисляет натуральный логарифм

Math

 

ln(x+1)

 

 

 

 

Log10( X: Extended ): Extended;

Вычисляет десятичный логарифм

Math

 

 

 

Log2( X: Extended ): Extended;

Вычисляет логарифм аргумента по

Math

 

основанию 2

 

 

 

 

LogN( N,X: Extended ): Extended;

Вычисляет логарифм аргумента по

Math

 

основанию N

 

 

 

 

Max( X1, X2 );

Возвращает большее из двух чисел

Math

 

 

 

Min( X1, X2 );

Возвращает меньшее из двух чисел

Math

 

 

 

 

110