події delphi

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

події delphi

Відкрийте наш проект з попереднього уроку. Клацніть на компоненті Edit1. Він "з'явиться" в інспектор об'єктів. Подивіться: в інспектор об'єктів дві вкладки: Properties (властивості) і Events (події). Перейдіть на вкладку Events. Щоб створити обробник потрібного події, потрібно двічі клацнути по ньому мишкою. А якщо розкрити список, що випадає, в ньому будуть перебувати вже готові обробники, які можуть підходити для цього компонента. Таким чином, один обробник може викликатися для обробки подій декількох компонентів.

Змінимо нашу програму так, щоб текст на формі з'являвся прямо в момент його введення. У момент введення у Edit1 змінюється властивість Text - в ньому з'являється нова буква! Значить, скористаємося подією onChange (change - зміна (англ.)), Яке і відбувається в цей момент. Отже:

  1. Кількома двічі по onChange. і опиняємося усередині щойно створеного обробника.
  2. Надаємо властивості Caption компонента Label1 значення властивості Text компонента Edit1. тобто робимо те ж, що і в минулому уроці:
Або просто копіюємо з обробника натискання кнопки.
  • Запускаємо програму, все працює. Як бачимо, все дуже просто.
  • Тепер розглянемо подія onClick. Як ви здогадуєтеся, це подія виникає при натисканні мишкою на компоненті. Скористаємося ним, щоб очищати рядок введення від уже введених символів. Ви самі вже повинні збагнути, що зробити. У обробнику потрібно привласнити властивості Text значення порожнього рядка. Рядок в Delphi утворюється висновком тексту в одинарні лапки (знаходяться на кнопці Е):
    'Так в Delphi утворюється рядок'
    Значить, порожній рядок - це лапки без тексту: ''. Не повинно бути навіть пробілу, інакше він виявиться в рядку введення:

    Є інший спосіб, скористатися спеціально призначеним для цього методом компонента Edit, який так і називається Clear (очищення англ.):

    Інші важливі події, які є майже у кожного візуального компонента:

    • onExit - виникає, коли компонент втрачає фокус введення;
    • onDblClick - виникає при подвійному натисканні мишкою по компоненту;
    • onKeyDown - коли при натисканні на кнопку на клавіатурі вона виявилася в нижньому положенні;
    • onKeyUp - коли при відпуску клавіатурній кнопки вона виявилася в верхньому положенні;
    • onKeyPress - виникає при натисканні на клавіатурну кнопку. Від подій onKeyDown і onKeyUp воно відрізняється типом використовуваного параметра Key;
    • onMouseDown - коли при натисканні кнопки мишки вона виявилася в нижньому положенні;
    • onMouseUp - коли при відпуску кнопки мишки вона виявилася в верхньому положенні;
    • onMouseMove - виникає при переміщенні покажчика мишки над компонентом.
    На початку роботи будь-якої програми відбувається дуже важлива подія подія нашого основного компонента - Форми, onCreate. Воно відбувається перед появою Форми на екрані. Ця подія використовується для завдання властивостей тих елементів програми, які потребують в налаштуванні, наприклад, розміри і положення Форми на екрані. Якщо ви захочете зробити невидиму програму, можна прирівняти нулю ширину Width і висоту Height Форми. На етапі проектування зробити цього не можна, тому що це завадить роботі, тому робимо це за подією onCreate:

    Form1.Width: = 0;
    Form1.Height: = 0;

    Додатково потрібно прибрати і заголовок Форми, вибравши в інспектор об'єктів параметр BorderStyle рівним None. Тепер Форма на екрані не з'явиться. Єдиним візуальним ознакою залишиться поява її "значка" на панелі завдань. Надалі я розповім, як позбутися і від нього.