Події Delphi

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

події

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

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

  1. Клікаємо двічі поonChange, і опиняємося всередині щойно створеного оброблювача.
  2. Привласнюємо властивостіCaptionкомпонентаLabel1значення властивостіTextкомпонентаEdit1, тобто робимо те саме, що й у минулому уроці:

Або просто копіюємо з обробника натискання кнопки.

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

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

    • onChange
    • onClick
    • onEnter

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

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

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

    Знайомство з компонентами Delphi На початок уроку Змінні, константи та їх типи

    Але це є результатом помилкового прочитання тексту. Читайте, там так:

    Label1.Caption: = Edit1.Text; Edit1.Clear;

    *У момент введення у Edit1 змінюється властивість Text - у ньому з'являється нова літера!*- Сенс що за літера

    Автор,додано 27.03.13, 07:30:38 Чому у вас текст повністю стирається? Ви використовуєте приклад із статті?