Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #4  
Старый 21.11.2012, 01:04
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Вроде бы всё понятно...

Но возник вопрос куда же всё таки писать писать основную программу?

В Unit1 или в Project1?
Если я правильно понял то основная программа компонуется в Project1 а Unit1 служит для процедур и событий компонентов программы?
Я правильно понял?

Так же хотелось бы узнать алгоритм выполнения программ...

В паскале всё ясно...
С верху идёт вниз пока не встретится Readln или ReadKey или KeyPressed для ввода данных...

А в делфи как?

В книге об этом ничего не написано((
Если создавать в делфи консольное/без-VCL-ное приложение, то будет 1-в-1 с паскалем: код в том виде, в каком он есть, в Project1.
Если же создавать приложение с использованием VCL (Visual Component Library), то тут несколько иной подход. Грубо говоря, делфа сама пишет "основной" код программы приблизительно следующим образом:
Код:
initEverything(...);
CreateWindow(...);
while GetMessage(...) do
begin
  TranslateMessage(...);
  DispatchMessage(...);
end;
Этот код генерируется где-то в недрах VCL. Это стандартная инициализация оконного приложения в Windows и цикл приема сообщений от системы.
Далее начинаем гуглить про 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.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025