Для чого потрібен winapi - delphi sources faq

Іноді потрібно працювати з об'єктами WINDOWS не використовуючи VCL. Де це може стати в нагоді?

  1. При відсутності у додатку вікна - консольний проект.
  2. Якщо потрібно працювати швидко, а відомо, що функції WinApi працюють на порядок швидше, ніж стандартні класи Delphi.
  3. Робота з пристроями введення - виведення. Багато речей в Дельфі можна робити через тільки через дескриптор, наприклад читання повідомлень з MailSlot, робота з процесами і thread і т.д.
Що це таке?

WINAPI - це набір фунций WINDOWS надається нам через стандартні бібліотеки (kernel32.dll gdi.exe і т.д.). Раз ці бібліотеки поширюються разом з WINDOWS, отже їх можна використовувати на будь-яких машинах (з цією платформою).

Хоча, слід зазначити, що та чи інша бібліотека може мати різну версію. Але нам програмістів на Delphi здебільшого це не важливо.

Для використання потрібно в розділі uses додати модуль windows. Внем то і описано більшість функцій.

На формі розмістимо кнопку і поле введення TEdit

У обробнику події кнопки onClick запишемо наступний код:

Тепер відкомпілюйте і запустіть його. В поле введення введіть заголовок будь-якого вікна є у вільному доступі у вас на робочому столі (наприклад "(Безимени) - Блокнот"). Натисніть кнопку і вікно мінімізується.

Цей простий проет демонструє принцип роботи з дескрипторами. Спочатку його потрібно отримати у функції FindWindow, яка шукає вікно по заголовку і повертає його дескриптор. А потім слід передати його функції ShowWindow котра з параметром SW_MINIMIZE мінімізує вікно.

Короткий огляд завершено. З усього перерахованого вище випливає, що WINAPI це не монстр, а звичайна техніка роботи з фунціями, правда дещо специфічна.

Схожі статті