![]() |
|
#4
|
||||
|
||||
![]() Цитата:
Если же создавать приложение с использованием VCL (Visual Component Library), то тут несколько иной подход. Грубо говоря, делфа сама пишет "основной" код программы приблизительно следующим образом: Код:
initEverything(...); CreateWindow(...); while GetMessage(...) do begin TranslateMessage(...); DispatchMessage(...); end; Далее начинаем гуглить про WinAPI и работу окон в Windows. Узнаем, что к окну привязана процедура, которая обычно называется WindowProc (или WndProc). Вот эту процедуру DispatchMessage внутри вызывает с нужными параметрами, передавая ей сообщение, присланное Windows, и его параметры. Примеры сообщений: Создание окна, удаление окна, движение мыши по окну, нажатие кнопки. Код WndProc программисту в делфи тоже не доступен, он опять же генерируется делфой в виде каскада вызовов обработчиков (грубо говоря, один проверяет сообщения от 0 до 100, другой от 100 до 200, третий от 200 до 300,... это связано с объектной ориентированностью, не суть важно). Когда сообщение распознано, оно обрабатывается. В ходе обработки вызываются те самые события, редактируемые в делфи: Timer1onTimer, Button1onClick, Form1onKeyDown. И вот программист делфи в 90% случаев пишет именно эти конечные функции для обработки событий, то есть описывает поведение программы в зависимости от присылаемых системой уведомлений. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 21.11.2012 в 01:16. |