Іноді потрібно працювати з об'єктами WINDOWS не використовуючи VCL. Де це може стати в нагоді?
- При відсутності у додатку вікна - консольний проект.
- Якщо потрібно працювати швидко, а відомо, що функції WinApi працюють на порядок швидше, ніж стандартні класи Delphi.
- Робота з пристроями введення - виведення. Багато речей в Дельфі можна робити через тільки через дескриптор, наприклад читання повідомлень з MailSlot, робота з процесами і thread і т.д.
WINAPI - це набір фунций WINDOWS надається нам через стандартні бібліотеки (kernel32.dll gdi.exe і т.д.). Раз ці бібліотеки поширюються разом з WINDOWS, отже їх можна використовувати на будь-яких машинах (з цією платформою).
Хоча, слід зазначити, що та чи інша бібліотека може мати різну версію. Але нам програмістів на Delphi здебільшого це не важливо.
Для використання потрібно в розділі uses додати модуль windows. Внем то і описано більшість функцій.
На формі розмістимо кнопку і поле введення TEdit
У обробнику події кнопки onClick запишемо наступний код:
Тепер відкомпілюйте і запустіть його. В поле введення введіть заголовок будь-якого вікна є у вільному доступі у вас на робочому столі (наприклад "(Безимени) - Блокнот"). Натисніть кнопку і вікно мінімізується.
Цей простий проет демонструє принцип роботи з дескрипторами. Спочатку його потрібно отримати у функції FindWindow, яка шукає вікно по заголовку і повертає його дескриптор. А потім слід передати його функції ShowWindow котра з параметром SW_MINIMIZE мінімізує вікно.
Короткий огляд завершено. З усього перерахованого вище випливає, що WINAPI це не монстр, а звичайна техніка роботи з фунціями, правда дещо специфічна.