Функції Delphi: опис, можливості, поради та рекомендації

Функції Delphi: опис, можливості, поради та рекомендації

Delphi - це пропріетарне середовище розробки (IDE) для Pascal у Windows. Вона реалізує об 'єктно-орієнтовану версію мови. Середовище розробки базується на графічному інтерфейсі, пов 'язаного з редактором вихідного коду функції Delphi. Мова програмування завоювала популярність завдяки простоті використання при розробці графічних програм і програм, пов 'язаних з базою даних.

Масиви - основа програмування

Borland Software Corporation 1995 року випустила наступника Turbo Pascal - Delphi, інтегроване середовище розробки, що використовує свій власний діалект Object Pascal для полегшення додатків Windows. Порівняно з IDE, функції Delphi мали безпрецедентну підтримку баз даних, створюючи багатовимірне середовище, що дозволяє програмістам писати код швидше і з меншою кількістю помилок, ніж будь-коли раніше.


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

Спочатку масив у Delphi-програмі був статичним. Це означало, що його розмір повинен був бути відомим під час написання коду.

У четвертій версії до мови були додані нові функції Delphi - динамічні масиви, які розрізнялися за розміром. Розробнику не потрібно було оголошувати розмір при написанні коду, і він міг програмно змінювати його, створюючи посилання, і, фактично, не виділяючи пам 'ять для вмісту.

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

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

Статистичні та динамічні масиви

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


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

  1. Поле розміру оновлюється.
  2. Новий (внутрішній) статичний масив функції Delphi 7 виділяється з новим розміром.
  3. Елементи старого статичного копіюються до нового.
  4. Індекс статичного змінюється на новий.

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

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

Рядкові оператори

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

Перед призначенням даних String змінній потрібно знати чотири рядкових типи. Короткий рядок функції Delphi - Shortstring. Це підрахований масив (ASCII) символів, що містить до 255 знаків у рядку. Перший байт цього масиву зберігає довжину. Цей принцип функціонування був основним у Delphi 1 (16-бітний Delphi) і створював змінну з іменем small, максимальна довжина якої становила 50 символів.

Коли присвоюють значення змінній Short String, рядок усікається. Особливо якщо вона перевищує максимальну довжину цього типу.

Змінні і їх тип повинні бути оголошені перед використанням. Тип змінної повинен бути обраний таким, який буде містити змінну:


  1. Ціле число - це цілі числа, наприклад 42 або -5.
  2. Одинарне або подвійне - використовуються, як тип з комами, наприклад, 3,3.

Операції можуть бути застосовані до числових змінних:

  • додавання;
  • віднімання;
  • множення;
  • додаток - може бути застосовано тільки до цілого числа;
  • char - використовується, щоб містити один символ, наприклад, m;
  • рядок - використовується, щоб містити пропозиції, наприклад, Hello world;
  • логічні значення - True і False.

Щоб об 'єднати 2 рядки символів, використовують оператор "+". Приклад: Hello + world буде реалізовано, як Hello world.

Змінні і константи

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

Під час використання змінної її оголошують у всіх файлах, де вона використовується. Тільки змінні, передані як параметр Delphi функції та процедури, не оголошуються в тій, де вони застосовуються. Для оголошення використовують ключове слово var. Вони можуть бути оголошені в .DPR або в процедурах файлів .pas.

Компонент TDBGrid Delphi є однією з перлин VCL. Розроблений таким чином, щоб дозволити користувачеві переглядати та редагувати дані в табличній сітці, він надає різні способи налаштування способу представлення даних. Наприклад, додавання кольору в сітки бази даних поліпшить вигляд і розмежує важливість певних рядків або стовпчиків у БД.


Delphi файли

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

Суфікс файла

Опис

.DCR

Файл проекту


.DFM

Креслення форми, що містить властивості графічних компонентів

.dpr

Файл проекту - це серце програми, пов 'язує всі різні файли, що містять код (.pas) з .DPR з функцією дати Delphi

.PAS


Вихідний файл, що містить код програми

.bdsproj

Файл проекту, пов 'язаний з .DPR

.RC

Файл ресурсів Windows

Таблиця файлів, створених після компіляції.

Суфікс файла

Опис

.BPG

Файл проектної групи.

.dcu

Файл, створений під час компіляції, але не обов 'язковий.

.dpk

Вихідний файл пакунка.

.dof

Файл параметрів проекту.

.dsk

Перевага IDE.

.RES

Файл ресурсів Windows може містити значки, растрові зображення, звуки.

Функція Pos

Функція POS Delphi повертає ціле число, що вказує позицію першого входження одного рядка в інший. Це створюється наступним чином. Pos шукає перше повне входження вказаного рядка. Зазвичай пропонується в одинарних лапках у джерелі. Джерелом є деяка змінна.

Якщо Pos знаходить рядок, він повертає позицію символу в Source, а першого символу в Str, як цілочисельне значення, в іншому випадку функція Delphi повертає 0. String і Source будуть рядками. Старомодна функція Pos - найбільш поширений спосіб пошуку і завжди розташована на початку.

Оновлена функція Pos допомагає вирішити цю проблему. Вона шукає рядок s1 в s2 і повертає її позицію, як це робить старий Pos. Крім того, можна визначити початкову позицію і максимальну довжину для пошуку.

Імпорт бібліотечних функцій

Для імпорту підпрограм бібліотеки (.DLL) приєднують директиву у вигляді: externalstringConstant, по-закінченню заголовка функцій і процедур, де string Constant - ім 'я бібліотечного файлу в лапках. Є можливість імпортувати підпрограму з іншою назвою. Для цього вказують оригінальне ім 'я у зовнішній директиві:

External stringConstant1, namestringConstant2.

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

externalstringConstantindexintegerConstant.

Де integerConstant індекс підпрограми в експортній таблиці.

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

Приклад створення одномірного масиву

Припустимо, потрібно сформувати 3 одномірних масиви для 50 членів товариства розробників програмного забезпечення. 1-й масив - імена, 2-й - електронна пошта, а 3-й - число завантажень.

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

Наприклад, наступне оголошення організовує тип запису з назвою REMember, який можна застосовувати в цьому випадку.

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

Тип функції Delphi Member охоплює 3 поля: рядкове значення Name, eMail і ціле число Posts. Після того, як буде встановлено тип запису, ви можете оголосити змінну Member. Вона не виділяє пам 'яті для імен, eMail і Posts. Щоб практично створити запис Member, оголошують його змінну.

Використання компонентів OnMouseOver

Код для подій OnMouseMove створюють з компонентом TDBGrid, щоб можна було знайти рядки і стовпчики DBGrid (комірки) в місці наведення курсора миші. Якщо він розташований над сіткою, то спрацьовує обробник події OnMouseMove. Тоді використовують метод MoveBy компонента DataSet, щоб встановити відображення поточного запису.

Рівнозначний код використовують для того, щоб продемонструвати місце, де знаходиться курсор миші, і змінити його, коли він розташований над рядком заголовка. Для правильного встановлення активного запису потрібно "" зламати "" DBGrid і отримати доступ до захищеної властивості Row. Рядки властивостей TCustomDBGrid компонента містять посилання на поточні активні рядки.

Багато компонентів мають корисні властивості та методи, позначені як невидимі або захищені розробниками Delphi. Доступ до таких елементів забезпечується застосуванням простої техніки, званої "захищений злом".

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

Скінінг Delphi Applications

Ці компоненти змінюють вигляд програм, додаючи теми та оболонки. Це простий спосіб покращити графічний інтерфейс користувача (GUI). VCLSkin - легкий у використанні компонент для створення графічного інтерфейсу програми Delphi. VCLSkin створить тему або обкладинку для нього без будь-яких змін вихідного коду.

Бібліотека DynamicSkinForm VCL забезпечує підтримку обкладинок для форм, меню, підказок, а також багатьох стандартних і нестандартних оригінальних елементів управління.

Скіни мають багато об 'єктів і ефектів для крутих програм, таких як WinAmp і iTunes. Спеціальний редактор дозволяє користувачеві налаштовувати скіни. SkinAdapter є компонентом DynamicSkinForm, який дозволяє створювати скіни програм без зміни вихідного коду.

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

Пакет розробки інтерфейсу користувача App Face - це рішення для створення візуальних графічних інтерфейсів програм, які можна використовувати в VC, VB.Net, Delphi, Visual Basic, C++ Builder і Win32 SDK. Він включає в себе управління скінами, засіб створення візуальних скінів, прикладів вихідного коду, а також технічного керівництво. Бібліотека appface.dll є компонентом ядра і може автоматично обробити всі створені вікна в цільовому додатку.

Переваги середовища програмування

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

Підстави чому досі використовують Delphi:

  1. Чіткий синтаксис, що робить код максимально читабельним.
  2. Механізм перетягування для реалізації, що дозволяє швидко створювати програмне забезпечення GUI.
  3. Підтримка баз даних SQL.
  4. Підтримує весь Windows API.
  5. Повно-об 'єктно-орієнтоване програмування.
  6. Сумісний з C++.
  7. Сильно адаптоване середовище VCL.
  8. Потрібно мінімальне обслуговування додатків.

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