На недавней компьютерной выставке (COMDEX) Билл Гейтс сравнил компьютерную промышленность с автомобильной и, в частности, сказал:
- Если бы Дженерал Моторс осваивала достижения технологии с таким же эффектом, как это происходит в компьютерной промышленности, то мы все уже бы ездили на 25-ти долларовых машинах с расходом бензина 10 литров на 1000 километров.
На что Дженерал Моторс отреагировала:
- Да, но хотели бы вы чинить ваш автомобиль дважды в день?
procedure TForm1.FormKeyDownFIRST(Sender: TObject;
var Key: Word; Shift: TShiftState);
procedure TForm1.FormKeyDownFirstSECOND(Sender: TObject;
var Key: Word; Shift: TShiftState);
// А потом, где нужно, подставляешь соответствующий адрес
@Form1.FormKeyDown=@Form1.FormKeyDownFIRST
Пример с юмором!
Код, предоставленный в этом примере - это программный код на языке Delphi Pascal, который демонстрирует два обработчика событий для события OnKeyDown формы (TForm1). Событие происходит при нажатии клавиши на форме.
Комментарий о сравнении Билла Гейтса с General Motors (GM) подчеркивает быстрый темп инноваций в компьютерной отрасли, где технологические достижения быстро принимаются. Ответ GM на это замечание - шутливая вопрос о том, хотели ли люди ремонтировать свои автомобили дважды в день, подразумевая, что частые исправления могут не быть желательными.
Теперь давайте проанализируем код:
Код FormKeyDownFIRST и FormKeyDownSecond - это два отдельных обработчика событий для одного и того же события (OnKeyDown). Первый процедура (FormKeyDownFirst) присваивается обработчику события с помощью оператора @, который используется для присвоения нового адреса существующей переменной. В этом случае адрес процедуры FormKeyDownFirst присваивается адресу @Form1.FormKeyDown.
Это означает, что при наступлении события OnKeyDown формы код будет выполняться в процедуре FormKeyDownFirst первым.
Вторая процедура (FormKeyDownSecond) не используется в этом примере, но может быть вызвана позднее, если это необходимо.
В целом, этот код демонстрирует два отдельных обработчика событий для одного и того же события, что может быть полезно при необходимости выполнения различных действий на основе конкретных условий или требований.
В статье обсуждается проблема в компьютерной промышленности, когда несколько обработчиков события могут быть привязаны к одному и тому же событию, что может привести к неожиданным последствиям.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS