русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Створення підпрограм для обробки компонентів


Дата додавання: 2014-10-07; переглядів: 970.


Якщо підпрограма модуля призначена для обробки компонентів, то така підпрограма обов'язково повинна мати вхідний параметр – змінну-форму.

Такий параметр описується так:

ім'я: tform;

При цьому звертання до компонентів на формі записується так:

tтип_компонента(ім'я.controls[i]) //звертання до компонента з номером i

tтип_компонента(ім'я.activecontrol) //звертання до активного компонента

Приклад. У модуль zapros.pas додати підпрограму-функцію для визначення максимального значення в масиві полів.

На формі може розташовуватися довільне число різнотипних компонентів, тому поля масиву потрібно якось відокремити. Це можна зробити, привласнюючи їм однакове значення у властивості tag. Значення цієї властивості буде першим параметром підпрограми.

Для звертання до компонентів другим параметром підпрограми буде змінн-форма.

У розділі Interface модуля додамо заголовок підпрограми-функції.

function max_min(n:integer; f:tform):real;

У розділі Implementation напишемо код реалізації підпрограми.

//функція визначення максимального

function max_mas(n:integer; f:tform):real;

var rez:real; i:integer;

begin

//спочатку максимум нескінченно малий

rez:=-100000;

//у циклі проходимо по всіх компонентах форми

for i:=0 to f.controlcount-1 do

//якщо i-й компонент поле (тільки поля масиву мають tag =n)

if f.controls[i].tag=n then

//якщо i-й компонент-поле не порожній

if tedit(f.controls[i]).text<>'' then

//якщо значення i-го компонента більше максимуму

if rez<strtofloat(tedit(f.controls[i]).text) then

//запам'ятовуємо це поле як максимальне

rez:=strtofloat(tedit(f.controls[i]).text);

//якщо результат не нескінченно малий (були введені дані)

if rez<>-100000 then

//функції присвоюємо результат

max_mas:=rez

//інакше, якщо результат нескінченно малий (немає введених даних)

else

//функції присвоюємо 0

max_mas:=0;

end;

Нехай є форма Form1 з 10 текстовими полями масиву й полем Edit11 для відповіді. Усі поля масиву мають властивість Tag=1. На формі є кнопка, яка визначає максимальне значення масиву й записує його в поле Edit11.

Скопіюйте файл модуля zapros.pas у папку із програмою. У коді форми підключіть модуль zapros.

Для кнопки напишіть код:

procedure Tform1.Button1Click(Sender: Tobject);

begin

//параметри підпрограми задаються так:

//1 – значення властивості tag полів масиву

//form1 – ім'я форми, на якій розташований масив

edit11.text:=floattostr(max_mas(1,form1));

end;

 

Питання для самоконтролю

1. В чому перевага модульного програмування?

2. Дайте характеристику принципу "інформаційної закритості даних" в модулях.

3. Дайте визначення модуля в Onject Pascal.

4. Яку структуру має модуль в Object Pascal?

5. Опишіть розділ Interface модуля в Object Pascal.

6. Опишіть розділ Implementation модуля в Object Pascal.

7. Опишіть принцип створення і використання модуля в Object Pascal.

8. Як в модулі описати текстові константи?

9. Які особливості має принцип створення в модулі підпрограм для обробки компонентів?

10. Приведіть приклад підпрограми знаходження суми текстових полів на формі.

 


 

Лекція №10

Тема: Створення бібліотек та сервісів.

Мета: Придбання знань зі створення статичних та динамічних бібліотек. Використання бібліотек при розробці програм.

Перелік питань, що розглядаються на лекції:

1. Поняття DLL

2. Створення DLL бібліотеки в Delphi

3. Внесення форм в DLL

4. Використання DLL бібліотеки

 


<== попередня лекція | наступна лекція ==>
Використання текстових констант у модулях | Поняття DLL


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн