к як всі користувальницькі підпрограми потрібно оформляти як спільні бібліотеки, спершу створюємо динамічну бібліотеку. Для цього необхідно в програмі Delphi 7 в падаючому меню File (файл) вибрати пункт New (новий), потім Others (інші) і у вікні вибрати елемент DLL Wizard. У вікні редактора коду створюємо два нових типи: mass1 і mass2 (одномірний і двовимірний масиви відповідно), ці ж типи створюємо і в самій програмі, а потім створюємо нову процедуру raschet1, вказуючи в дужках змінні, які передаються в процедуру, а в розділі var ті змінні, які необхідно вивести з процедури. У розділі var процедури raschet1 вказуємо змінні, які будуть використовуватися тільки усередині процедури, після цього записуємо текст програми, який відповідає блок-схемі:
function Formula (k0, X, E, k, Id, Em: Real): Real; stdcall;:=((2 * sqrt (2))/(3.14 * k)) - ((2 * Em * Id * X * k0)/(3.14 * E * k))
end;
//k - відношення ефективного струму вторинної обмотки трансформатора до середнього Випрямлену току
//Em - коефіцієнт, що враховує вплив омічного падіння напруги в колі змінного струму на середнє випрямлена напруга
//Id - величина випрямленої струму
//X - реактивний опір
//k0 - відношення коефіцієнта трансформації на даному ступені регулювання до найменшого коефіцієнту трансформації, при якому виходить номінальна електрорушійна сила ходу вторинної обмотки трансформатора
//E - ефективне значення електрорушійної сілиFormula index 1;
Для того, щоб було можливо звернутися до даної процедури в її кінці записаний рядок exports Formula index 1. Після написання процедури потрібно скомпілювати проект (Ctrl + F9), а потім зберегти в окрему папку.
Для того щоб можна було звернутися до створеної процедурі потрібно в тексті програми написати наступне:
function Formula (k0, X, E, _k, i, _Em: Real): Real; stdcall; Dll FormulaDLL.dll index 1
Причому необхідно вказувати повний шлях до dll бібліотеці.
Після підключення бібліотеки можемо використовувати її в програмі: на кнопці розрахунок, після введення даних, звертаємося до даній бібліотеці.
Для виклику калькулятора на кнопці КАЛЬКУЛЯТОР вводимо наступний елемент програмного коду:
winexec ( calc.exe , sw_restore);
Оскільки програма повинна запам'ятовувати останні введені дані, на кнопці ВИХІД вводимо наступний елемент програмного коду, який буде відповідати за те, щоб всі значення з компонентів LabeledEdit були збережені в текстовому файлі, однак перед цим для кожної змінної потрібно ввести програмний код для перевірки правильності введених даних (так само як і на кнопці РОЗРАХУНОК):
AssignFile (TempFile, FileName); (TempFile); (TempFile, LabeledEdit1.Text); (TempFile, LabeledEdit2.Text); (TempFile, LabeledEdit3.Text); (TempFile, LabeledEdit4.Text) ; (TempFile, LabeledEdit5.Text); (TempFile, LabeledEdit6.Text); (TempFile, LabeledEdit7.Text); (TempFile, LabeledEdit8.Text); (TempFile, LabeledEdit9.Text); (TempFile, LabeledEdit10.Text); ( TempFile);
СТВОРЕННЯ АНІМАЦІЇ
Дана анімація розташована у вікні «Про програму».
Рисунок 10 - Вікно подання інформації про проект
Для створення анімації було використано два основних компоненти це TImage (вкладка Additional) і TTimer (вкладка System), які в основному застосовуються для створення будь-яких графічних зображень в Delphi.
Компонент TImage активно використовується у багатьох програмах, причому не тільки для відображення статичних картинок, але і для створення анімаційних ефектів.
Компонент TTimer застосовується в основному для створення темпу зміни кадрів. Слід врахувати, що інтервал властивості Interval задається в мілісекундах.
Формування анімації полягає в послідовній промальовуванні кадрів, спочатку малюється перший кадр, а потім йде зсув з очищенням попереднього положення малюнка.
Для створення анімації були використані деякі властивості і методи класу TCanvas. Нижче наведені деякі методи класу TCanvas і їхнє призначення:
procedure Draw - висновок графічного зображення в заданій точці полотна; Polygon - малюється складна фігура, що складається з відрізків, послідовно з'єднують точки, представлені ввиде динамічного масиву елементів TPoint. Остання точка з'єднується з першою. Внутрішня частина фігури заповнюється відповідно до значення властивості Brush;
procedure Rectangle - малюється прямокутник. Його внутрішня область заповн...