32 Урока Borland Delphi



Урок 10 - часть 3


end;

Запустите программу, пощелкайте мышкой на форме:

Рис.2

Как видите, в Delphi очень просто отвечать на события. И не только на события, связанные с мышкой. Например, можно создать обработчик для OnKeyDown (нажата клавиша):

procedure TForm1.FormKeyDown(Sender: TObject;

var Key: Word;

Shift: TShiftState);

begin

MessageDlg(Chr(Key), mtInformation, [mbOk], 0);

end;

Теперь, когда вы имеете начальные знания о программировании событий в Delphi, самое время вернуться назад и посмотреть на теорию, стоящую за тем кодом, что вы написали. После получения представления о том, как работает система, можно вернуться к среде Delphi и посмотреть, как использовать полностью имеющиеся возможности.

  • Понимание событий
  • Событийное программирование есть не только в Windows, и данную черту можно реализовать не только в операционной системе. Например, любая DOS программа может быть основана на простом цикле, работающем все время жизни программы в памяти. Ниже вы найдете гипотетический пример, как данный код может выглядеть:

    begin

    InitializeMemory;

    repeat

    CheckForMouseEvent(Events);

    CheckForKeyPress(Events)

    HandleEvents(Events);

    until Done := True;

    DisposeMemory;

    end.

    Это типичный пример программы, ориентированной на события. Она начинается и заканчивается инициализацией и освобождением памяти. В программе присутствует простой цикл repeat..until, который проверяет появление событий от мыши и клавиатуры и затем дает возможность программисту ответить на эти события.

    Переменная Events может быть записью с простой структурой:

    TEvent = record

    X, Y: Integer;

    MouseButton: TButton;

    Key: Word;

    end;

    Тип TButton, указанный выше, можно декларировать так:

    TButton = (lButton, rButton);

    Эти структуры позволяют вам проследить, где находится мышь, каково состояние ее кнопок, и значение нажатой клавиши на клавиатуре. Конечно, это пример очень простой структуры, но заложенные здесь принципы отражают то, что происходит внутри Windows или внутри других систем, ориентированных на события, вроде Turbo Vision. Если бы программа, приведенная выше, была редактором текста, то обработчик HandleEvent для такой программы мог бы иметь вид:




    Содержание  Назад  Вперед