powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Перенос кода из основной формы в модуль
25 сообщений из 53, страница 2 из 3
Перенос кода из основной формы в модуль
    #39728291
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, сегодня ж не пятница, завязывайте демагогию!!!
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728292
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,
сегодня еще пятница, последняя из длинных пятниц в этом году.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728397
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

В отдельном модуле создай TActionList и создавай в нём TActions.
Потом, присваивай TButton.Action:=MyModule.ActionDelete;

Pcrepairчастенько код обработки занимает несколько сот строк

Типичный код, для типичного Делфи "программиста".
Если в кратце, то каждый метод должен состоять не более чем из 3-5 строк кода.
PcrepairВопрос : нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать.
Есть.
В меню Refactor -> extract interface/superclass/method.
Но что бы грамотно пользоваться, почитай про модель MVC
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728406
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BЕсть.
В меню Refactor -> extract interface/superclass/method
Код с форм в другой класс/модуль так не перенести, только на ту же самую форму.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728408
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте Регионы и проблема длинного кода решится
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728414
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а потом говорят, что delphi не популярна из-за высокой цены IDE... а комьюнити просто прелестно. Какашки, вентилятор, все есть
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728416
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

Когда программист делает что-то противоестественное, он должен максимально страдать. Думаю, что это как раз твой случай. Чем больше страданий - тем ближе путь к катарсису.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728417
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairчастенько код обработки (нажать на батон к примеру) занимает несколько сот строк, приходится переность код в отдельный модуль.
при этом нужно добавлять кучу ссылок на основную форму (типа: uMainForm.Memo1.Text) что несколько утомляет.


Если код содержит ссылки на компоненты конкретной формы (uMainForm.Memo1.Text), то его уже не получится использовать из других форм, а только из данной. Поэтому такой перенос кода в отдельный модуль не приведет к повторному использованию кода этого модуля, и смысл может быть только в декомпозиции для удобочитаемости.

Но для этого лучше разбивать код на отдельные методы этой же формы. Если есть иерархия форм - выносить общие методы в предков. Но выносить такой код в модули тут совсем не в тему. Выносить из формы в модули надо только тот код, что не содержит прямых ссылок на компоненты формы.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728424
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, про MVC на Делфи-форумах говорить бесполезно.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728610
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BДа, про MVC на Делфи-форумах говорить бесполезно. Да почему же? Просто в Delphi используются несколько иные термины. dfm-ки это будут представлениями, юниты с формами это контроллеры, а датамодули, или просто юниты без форм будут моделями.
В данном случае есть подозрение, что тема является стебом.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728613
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

патерн Наблюдатель рулит

но на самом деле в подавляющем большинстве случаев форма уже часть MVC, только Model держится либо в голове либо в БД
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728620
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roschinspbДа почему же? Просто в Delphi используются ...он имеет ввиду что продавать чистый воздух в альпийских лугах, бессмысленно :-)
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728628
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.BorzovJaDi,
Да, когда баловался своими компонентами, эта проблема вставала в полный рост: надо подписаться на чей-то OnClose, например, или OnClick, или еще какой-нибудь On, и сохраняешь то, что там уже вписано, потом суешь свое. И боишься: а вдруг то, что ты сохранил, чтобы также исполнить, будет принадлежать удаленному объекту... Было бы удобнее просто указать: вот при OnClick еще и мою процедурку выполните... Обвешивание контролов событиями зачастую приводит к тому, что потом хрен разберешься где что привешено, в трех в пяти местах поменял, а в шестом забыл (и так после десяти итераций). А если гипотетически 10 кликов на каждую кнопку вешать, то вообще ахтунг. Когда надо несколько методов выполнять то гораздо нагляднее вызывать их последовательно в одном onExecute да и историю с системе контроля версий удобнее будет анализировать. Будь на то моя воля, я бы вообще onClick выпилил.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728642
AlBor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

Тоже хотел упомянуть. Концепция MVC (Model-View-Controller: модель-вид-контроллер).
Но боюсь тут и сегодня это неуместно. Хотя, и ничего сложного нет.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728652
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherПоэтому такой перенос кода в отдельный модуль не приведет к повторному использованию кода этого модуля, и смысл может быть только в декомпозиции для удобочитаемости.


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

чтоб не создавать лишних тем еще вопрос :
в РАД есть возможность сворачивать код процедур клякнув мышью(ну чтоб поле обзора не занимали). нет ли в РАД канопочки, нажав на которую можно свернуть ВСЕ код всех процедур(ну чтоб не клякать по пять минут, у меня там в некоторых модулях до 50-и процедур, пока все свернешь) ?
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728660
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roschinspb,

Я уже довольно давно почти 100% обработчиков веду в экшнах, про OnClick забыл давно, всё OnExecute. Ну а экшн можно клеить почти куда угодно.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728664
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728677
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairда, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?Это исключение. У таймера можно использовать только TTimer.OnClick.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728686
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairда, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?

Код: pascal
1.
2.
3.
4.
procedure TForm1.Timer1Timer(Sender:TObject);
begin
 MyActions.Timer1Action.Execute;
end;
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728745
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairвот именно для удобочитаемости и ни для чего то там другого.
что касается бесплатных советов выносить методы в отдельный модуль, то там где это возможно так и делается.
или что? тут кто то предлагает к примеру циклы оформлять в отдельные процедуры, или там логику ЕСЛИ?
Тебе всего лишь предлагают разделить код на несколько типов: код для работы с данными, код для работы с визуальным представлением данных, а также реакцией на пользовательские действия.

У тебя похоже пока всё находится в одной куче и скорее всего данные, находящиеся в UI контролах у тебя и есть данные программы. Поэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд. Может конечно на самом деле у тебя всё иначе, но по сути мы играем в телепатов исходя из твоих вопросов.

В общем пока смирись с тем, что каждый первый тебя воспринимает как очередного агрессивного "формошлёпщика" или какая там нынче терминология? Ты не понимаешь, что делаешь не так, не понимаешь почему это не так и агрессивно отстаиваешь своё "не так". Реабилитироваться пока тебе не удалось.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728762
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вставлю пять копеек

меня например очень впечатлил MVP

http://www.danieleteti.it/a-simple-start-with-mvp-in-delphi-for-win32-part-2/

очень удобная штука
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728790
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПоэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд
да ни с чем выше перечисленным лично Я не сталкиваюсь. Мой код работает как предначертано и исключений не выдает. просто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет.
но... была слабая надежда что кто то это уже раскопал. и вот ее, надежды, уже нет.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728853
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PcrepairавторПоэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд
да ни с чем выше перечисленным лично Я не сталкиваюсь. Мой код работает как предначертано и исключений не выдает.
Тут ты либо противоречишь сам себе, либо у тебя нет никаких проблем и тебе не надо ничего переносить в другие модули.

У кода "работа без исключений" только лишь один из параметров качества. А ещё есть такое понятие как "сопровождаемость кода", которое может измеряться временем на устранение найденной ошибки, временем на добавление новой функции, временем на понимание кода для новых людей (или для тебя через длинный промежуток времени).

Pcrepairпросто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет.
но... была слабая надежда что кто то это уже раскопал. и вот ее, надежды, уже нет. Эти фичи находятся не в редакторе, а в изначальной архитектуре/дизайне кода.
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728864
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

авторМой код работает как предначертано и исключений не выдает. просто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет.

Если всё замечательно работает, зачем вообще куда-то что-то переносить? Тем более описанным тобой способом? Пусть лежит на форме, раз уж так сделал, зачем бабку колошматить...
...
Рейтинг: 0 / 0
Перенос кода из основной формы в модуль
    #39728968
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PcrepairМой код работает как предначертаноШикарные слова!) Нацарапаю гвоздиком на мониторах, чтобы не забыть!
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Перенос кода из основной формы в модуль
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]