Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2010, 22:43   #1
kilgore
 
Регистрация: 09.08.2010
Сообщений: 3
По умолчанию Разделение кода на части

здраствуйте. я работаю с дельфи 6. сейчас у меня около 7000 строк кода и навигация между всеми этими процедурами становится сложновата. как можно проект разделить на части? например: в одну положить все, что касается событий формы, в другую загрузку, в третью графику, в четвертую обработку событий...
kilgore вне форума Ответить с цитированием
Старый 21.08.2010, 22:46   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Для этого созданы units (модули)
BOBAH13 вне форума Ответить с цитированием
Старый 22.08.2010, 10:28   #3
kilgore
 
Регистрация: 09.08.2010
Сообщений: 3
По умолчанию

да, я пробовал их включать. но не разобрался со структурой. как мне перетащить процедуру в другой юнит и использовать его в первом? что писать в заголовке юнита и процедуры?
kilgore вне форума Ответить с цитированием
Старый 22.08.2010, 10:43   #4
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Создаешь новый юнит, и в нем пишешь свои процедуры (если надо подключив другие юниты). В основной форме тоже подключать созданный юнит надо. Вот тебе пример маленький:Демо.rar
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 22.08.2010, 15:33   #5
kilgore
 
Регистрация: 09.08.2010
Сообщений: 3
По умолчанию

о, большое спасибо. теперь все ясно
kilgore вне форума Ответить с цитированием
Старый 14.07.2017, 12:35   #6
mosq
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 90
По умолчанию

сорри за археологию, вопрос по теме:
как вынести событие компонента в отдельный юнит?

как только выношу, сразу основная форма ругается [dcc32 Error] main.pas(355): E2065 Unsatisfied forward or external declaration: 'TForm1.com1Updates'
mosq вне форума Ответить с цитированием
Старый 14.07.2017, 12:40   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Эти процедуры все равно должны быть объектного типа. Что даст их перенос в отдельный юнит? Ну а присвоить обработчик другого объекта можно, программно например
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.07.2017, 12:43   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

процедуру-событие вынести не можно. Но можно написать новую процедуру в новом модуле, и которую ИСПОЛЬЗОВАТЬ в "старой" процедуре-событии.

Код:
unit2

proceure NewProcEvent(<не забудь про нужные параметры>);
.....
end.
Код:
Tform1.com1updates(....);
begin
  ....
  NewProcEvent(<и с чем она будет работать>);
 ...
end;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 14.07.2017, 13:04   #9
mosq
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 90
По умолчанию

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

причем, пробовал просто вкладывать текстовый файл с отдельным исходником черех {$I... , и все равно ругается.
mosq вне форума Ответить с цитированием
Старый 14.07.2017, 14:36   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
там еще в событии разные параметры от компонента приходят
заменить процедуру на класс с передачей ему данных как свойств.
(и как наиболее простой говно-вариант. одно свойство наша форма).


Как продвинутый говно-код класс с обратной связью на
property OnGetData: TNotifyEvent;

разбить супер-процедуру на нужное число более мелких процедур с разными вариантами параметров и вызывать их из события по необходимости.
Код:
if ........ then ActionProc1(........)
else if ...... then ActionProc2()
else ActionProcOther(.....);
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение массива данных на части Евгений К. Microsoft Office Excel 2 03.06.2010 13:41
JS для скрытия части кода lukoie JavaScript, Ajax 3 29.01.2010 09:34
Замена части кода при отключённом JavaScript в браузере DJ Triton PHP 7 18.08.2009 19:47
разделение кода на состовляющие world12_tk Помощь студентам 3 04.04.2009 19:33
разделение формы на 4 части za4ot Общие вопросы Delphi 2 03.07.2008 12:12