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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.11.2012, 12:55
Van-89 Van-89 вне форума
Прохожий
 
Регистрация: 20.11.2012
Адрес: Новокузнецк
Сообщения: 25
Версия Delphi: Delphi 7
Репутация: 10
Лампочка Начало начал

Здравствуйте...

Изучив по книге паскаль я решил пойти дальше и изучить делфи...
Скачал книгу Н.Б.Культин - Основы программирования в Delphi 7 - 2007
Второй день читаю книгу...
Вроде бы всё понятно...

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

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

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

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

А в делфи как?

В книге об этом ничего не написано((
Ответить с цитированием
  #2  
Старый 20.11.2012, 13:13
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Van-89
Но возник вопрос куда же всё таки писать писать основную программу?

В Unit1 или в Project1?
Если я правильно понял то основная программа компонуется в Project1 а Unit1 служит для процедур и событий компонентов программы?
Я правильно понял?
Выполнение программы начинается с Project1, но саму программу желательно разделять на логичные части (модули). В самом Project1 пиши только код инициализации и ещё возможно финализации приложения, всё остальное в модулях. Хотя конечно ничто не мешает весь код написать в Project1, но для этого нужно постараться.
Цитата:
Сообщение от Van-89
Так же хотелось бы узнать алгоритм выполнения программ...

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

А в делфи как?
Не линейный - событийный. После "Application.Run" (см. в Project1) программа входит в цикл ожидания и обработки сообщений от системы (там кнопка нажалась, там таймер сработал и т.п.).
Ответить с цитированием
  #3  
Старый 20.11.2012, 19:18
icsander icsander вне форума
Новичок
 
Регистрация: 17.04.2011
Сообщения: 87
Репутация: 10
По умолчанию

В твоем случае лезть в Project1 пока не нужно. Дельфа сама знает что с ним делать. Копайся в Unit1 (или как он там будет обзываться) - для тебя пока это главный модуль, пока не научишся большему. Изучи саму IDE, сочетания клавиш, настройки и т.д. Она в общем-то дружелюбна и сама тебе поможет в трудную минуту
Ответить с цитированием
  #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, время: 06:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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