Використання в delphi підказок

В операційній системі Windows при наведенні покажчика миші на будь-якому значку спливає підказка. Наявність підказки допомагає кінцевому користувачеві розібратися з функціоналом програми.

Розмістимо на формі компонент Edit і в властивості Hint напишемо "Це наш компонент, ми сюди можемо все написати". Властивість ShowHint встановлюємо в TRUE. Запустимо проект клавішею F9. Затримаємо на мить миша над компонентом Edit і побачимо нашу підказку на тлі жовтого кольору, як на малюнку.

Використання в delphi підказок
А як зробити фон підказок інший,
запитаєте Ви, все дуже просто. Для цього розглянемо наступний приклад.

Розташуємо Компоненти наступним чином, як на малюнку. Властивості форми ShowHint дамо TRUE. Простежимо, щоб у всіх компонентів властивість ParentShowHint було б TRUE.

Тепер для кожного компонента напишемо підказку типу "Це компонент Edit" (для кожного компонента підказка повинна бути своєю). Подвійним клацанням на формі зайдемо в обробник форми Create і внесемо туди наступні рядки:

procedure TForm1.FormCreate (Sender: TObject);

Button1.Hint: = 'Перший рядок' + # 13 + 'Другий рядок' + # 13 + 'Третій рядок';

Перший рядок задає кнопці Button1 нову підказку, якщо до цього була задана підказка в інспектор об'єктів, то вона ігнорується. Символ # 13 розбиває рядок підказки на кілька "поверхів". Властивість HintColor задає фон підказок. Властивість HintPause - час до показу підказки в мілісекундах (де 1000 - одна секунда), а властивість HintHidePause час показу підказки.

Лекція № 20. Створення заставки, інформаційних вікон.

Розглянемо простий спосіб створення вікна-заставки.

Для початку необхідно підготувати саме зображення, яке Ви хочете бачити в якості заставки. Як приклад візьмемо зображення з Borland Delphi 5.

Отже, порядок дій наступний:

1. Створюємо нову форму File> New> Form - Delphi for Win322.

2. Для зручності назвемо її IntroForm і задамо властивості BorderStyle значення bsNone (Зникнуть заголовок і рамка форми), властивості Position значення poDesktopCenter (вікно буде з'являтися по центру робочого столу).

3. Помістимо на форму компонент TImage (вкладка Additional) і завантажимо наше зображення за допомогою властивості Picture.

4. Помістимо на форму компонент TTimer (вкладка System), встановимо його властивості Interval значення рівне 3000 (3 секунди), а в обробнику подій OnTimer запишемо:

5. Далі відкриваємо файл проекту: Project> View Source і вносимо зміни згідно прикладу нижче:

Forms,
Unit1 in 'Unit1.pas',
Unit2 in 'Unit2.pas';

begin
Application.Initialize;
IntroForm: = TIntroForm.Create (Application);
IntroForm.Show;
IntroForm.Update;

while IntroForm.Timer1.Enabled do
Application.ProcessMessages;

Application.CreateForm (TForm1, Form1);
IntroForm.Hide;
IntroForm.Free;
Application.Run;
end.

2. Інформаційне вікно в Delphi додатку

На допомогу програмісту є шаблон в Delphi або ж таке вікно можна створити самостійно. Для того щоб скористатися шаблоном, потрібно вибрати в Сховище об'єктів (File -> New -> Other) на сторінці Forms шаблон форми About box.

Використання в delphi підказок
У підсумку до додатка буде додана форма з заголовком About і з ім'ям AboutBox.

Використання в delphi підказок
На формі будуть розташовані панель (компонент Panel) і кнопка з заголовком OK для закриття вікна. Для кнопки обробник події не потрібно, так як властивість ModalResult кнопки встановлено рівним mrOK і тому при її натисканні інформаційне вікно буде закрито.

Панель (компонент Panel) містить в собі чотири компонента Label для показу відомостей про програмний продукт і його розробників. Компонент Image призначений для відображення будь-якого малюнка, наприклад логотип виробника програми.

Тема самої форми About при необхідності також можна змінити. Якщо на формі необхідні будуть ще якісь елементи, то їх завжди можна додати або, при необхідності, непотрібні видалити.

При роботі з програмою інформаційне вікно зазвичай виводитися за допомогою головного меню в модальному режимі. Для продовження роботи з програмою інформаційне вікно має бути закрите.

Приклад виклику інформаційного вікна з меню буде таким:

procedure TForm1.N1Click (Sender: TObject);

Лекція № 21. Поняття і призначення DLL-бібліотек. Створення DLL-бібліотек. Використання DLL-бібліотек.

1.Поняття і призначення DLL-бібліотек.

Динамічно завантажується бібліотека (від англ. Dynamically loadable library) - це бібліотека підпрограм, яка завантажується в оперативну пам'ять і підключається до використовує програму під час її роботи (а не під час компіляції і збірки). Файли динамічно завантажуваних бібліотек в середовищі Windows зазвичай мають розширення .dll (від англ. Dynamic-Link Library).

Кілька різних програм можуть використовувати в роботі загальну динамічно завантажується бібліотеки. При цьому операційна система насправді завантажує в оперативну пам'ять лише одну копію бібліотеки і забезпечує спільний доступ до неї з боку всіх програм. Крім того, такі бібліотеки можуть динамічно завантажуватися і розвантажуватися з оперативної пам'яті по ходу роботи програми, звільняючи ресурси системи для інших завдань.

Одне з найважливіших призначень динамічно завантажуваних бібліотек - це взаємодія підпрограм, написаних на різних мовах програмування. Наприклад, ви можете вільно використовувати в середовищі Delphi динамічно завантажувані бібліотеки, розроблені в інших системах програмування за допомогою мов C і C ++. Справедливо і зворотне твердження - динамічно завантажувані бібліотеки, створені в середовищі Delphi, можна підключати до програм на інших мовах програмування.

За структурою вихідний текст бібліотеки схожий на вихідний текст програми, за винятком того, що текст бібліотеки починається з ключового слова library, а не слова program. наприклад:

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

Якщо в тілі бібліотеки оголошені деякі процедури,

procedure BubleSort (var Arr: array of Integer); procedure QuickSort (var Arr: array of Integer);

то це ще не означає, що вони автоматично стануть доступні для виклику ззовні. Для того щоб це дозволити, потрібно помістити імена процедур в спеціальну секцію exports, наприклад: exports BubleSort, QuickSort;

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

Нижче наведено приклад вихідного тексту найпростішої динамічно завантажується бібліотеки SortLib. Вона містить єдину процедуру BubleSort, сортують масив цілих чисел методом «бульбашки»:

library SortLib; procedure BubleSort (var Arr: array of Integer); var I, J, T: Integer; begin for I: = Low (Arr) to High (Arr) - 1 do for J: = I + 1 to High (Arr) do if Arr [I]> Arr [J] then begin T: = Arr [I]; Arr [I]: = Arr [J]; Arr [J]: = T; end; end; exports BubleSort; begin end.

Оригінальний текст динамічно завантажується бібліотеки закінчується операційним блоком begin. end, в який можна вставити будь-які оператори для підготовки бібліотеки до роботи. Ці оператори виконуються під час завантаження бібліотеки основною програмою. Наша найпростіша бібліотека SortLib не вимагає ніякої підготовки до роботи, тому її операційний блок порожній.

Існують два способи імпортування, що відрізняються за зручністю і гнучкості програмування:

§ статичний імпорт (забезпечується директивою компілятора external);

§ динамічний імпорт (забезпечується функціями LoadLibrary і GetProcAddress).

Статичний імпорт є більш зручним, а динамічний - більш гнучким.

При статичному імпорті всі дії по завантаженню та підключення бібліотеки виконуються автоматично операційною системою під час запуску головної програми. Щоб задіяти статичний імпорт, досить просто оголосити в програмі процедури і функції бібліотеки як зовнішні. Це робиться за допомогою директиви external. наприклад:

procedure BubleSortIntegers (var Arr: array of Integer); stdcall; external 'SortLib.dll'; procedure QuickSortIntegers (var Arr: array of Integer); stdcall; external 'SortLib.dll';

procedure BubleSort (var Arr: array of Integer); stdcall; external 'SortLib.dll' name 'BubleSortIntegers'; procedure QuickSort (var Arr: array of Integer); stdcall; external 'SortLib.dll' name 'QuickSortIntegers';

Цей спосіб називається статичним імпортом.

Розширення файлу, що містить DLL, може не вказуватися - за замовчуванням маються на увазі файли * .DLL і * .EXE. Якщо файл має інше розширення (наприклад, як COMPLIB.DCL в Delphi), або якщо потрібно динамічне визначення DLL і імпортованих функцій (наприклад, Ваша програма працює з різними графічними форматами, і для кожного з них існує окрема DLL.), То для вирішення такого роду проблем можна звернутися безпосередньо до API Windows, використовуючи, так званий, динамічний імпорт:

Схожі статті