|
|
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Народ, сегодня ж не пятница, завязывайте демагогию!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 23:25 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
DimaBr, сегодня еще пятница, последняя из длинных пятниц в этом году. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 23:31 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepair, В отдельном модуле создай TActionList и создавай в нём TActions. Потом, присваивай TButton.Action:=MyModule.ActionDelete; Pcrepairчастенько код обработки занимает несколько сот строк Типичный код, для типичного Делфи "программиста". Если в кратце, то каждый метод должен состоять не более чем из 3-5 строк кода. PcrepairВопрос : нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать. Есть. В меню Refactor -> extract interface/superclass/method. Но что бы грамотно пользоваться, почитай про модель MVC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:43 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Valery_BЕсть. В меню Refactor -> extract interface/superclass/method Код с форм в другой класс/модуль так не перенести, только на ту же самую форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:55 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Используйте Регионы и проблема длинного кода решится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:57 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
а потом говорят, что delphi не популярна из-за высокой цены IDE... а комьюнити просто прелестно. Какашки, вентилятор, все есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 11:06 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepair, Когда программист делает что-то противоестественное, он должен максимально страдать. Думаю, что это как раз твой случай. Чем больше страданий - тем ближе путь к катарсису. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 11:11 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepairчастенько код обработки (нажать на батон к примеру) занимает несколько сот строк, приходится переность код в отдельный модуль. при этом нужно добавлять кучу ссылок на основную форму (типа: uMainForm.Memo1.Text) что несколько утомляет. Если код содержит ссылки на компоненты конкретной формы (uMainForm.Memo1.Text), то его уже не получится использовать из других форм, а только из данной. Поэтому такой перенос кода в отдельный модуль не приведет к повторному использованию кода этого модуля, и смысл может быть только в декомпозиции для удобочитаемости. Но для этого лучше разбивать код на отдельные методы этой же формы. Если есть иерархия форм - выносить общие методы в предков. Но выносить такой код в модули тут совсем не в тему. Выносить из формы в модули надо только тот код, что не содержит прямых ссылок на компоненты формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 11:12 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Да, про MVC на Делфи-форумах говорить бесполезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 11:27 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Valery_BДа, про MVC на Делфи-форумах говорить бесполезно. Да почему же? Просто в Delphi используются несколько иные термины. dfm-ки это будут представлениями, юниты с формами это контроллеры, а датамодули, или просто юниты без форм будут моделями. В данном случае есть подозрение, что тема является стебом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:25 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Valery_B, патерн Наблюдатель рулит но на самом деле в подавляющем большинстве случаев форма уже часть MVC, только Model держится либо в голове либо в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:29 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
roschinspbДа почему же? Просто в Delphi используются ...он имеет ввиду что продавать чистый воздух в альпийских лугах, бессмысленно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:37 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
V.BorzovJaDi, Да, когда баловался своими компонентами, эта проблема вставала в полный рост: надо подписаться на чей-то OnClose, например, или OnClick, или еще какой-нибудь On, и сохраняешь то, что там уже вписано, потом суешь свое. И боишься: а вдруг то, что ты сохранил, чтобы также исполнить, будет принадлежать удаленному объекту... Было бы удобнее просто указать: вот при OnClick еще и мою процедурку выполните... Обвешивание контролов событиями зачастую приводит к тому, что потом хрен разберешься где что привешено, в трех в пяти местах поменял, а в шестом забыл (и так после десяти итераций). А если гипотетически 10 кликов на каждую кнопку вешать, то вообще ахтунг. Когда надо несколько методов выполнять то гораздо нагляднее вызывать их последовательно в одном onExecute да и историю с системе контроля версий удобнее будет анализировать. Будь на то моя воля, я бы вообще onClick выпилил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:45 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Valery_B, Тоже хотел упомянуть. Концепция MVC (Model-View-Controller: модель-вид-контроллер). Но боюсь тут и сегодня это неуместно. Хотя, и ничего сложного нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:59 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherПоэтому такой перенос кода в отдельный модуль не приведет к повторному использованию кода этого модуля, и смысл может быть только в декомпозиции для удобочитаемости. вот именно для удобочитаемости и ни для чего то там другого. что касается бесплатных советов выносить методы в отдельный модуль, то там где это возможно так и делается. или что? тут кто то предлагает к примеру циклы оформлять в отдельные процедуры, или там логику ЕСЛИ? чтоб не создавать лишних тем еще вопрос : в РАД есть возможность сворачивать код процедур клякнув мышью(ну чтоб поле обзора не занимали). нет ли в РАД канопочки, нажав на которую можно свернуть ВСЕ код всех процедур(ну чтоб не клякать по пять минут, у меня там в некоторых модулях до 50-и процедур, пока все свернешь) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:18 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
roschinspb, Я уже довольно давно почти 100% обработчиков веду в экшнах, про OnClick забыл давно, всё OnExecute. Ну а экшн можно клеить почти куда угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:25 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
да, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:31 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepairда, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?Это исключение. У таймера можно использовать только TTimer.OnClick. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:42 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepairда, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии? Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:51 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepairвот именно для удобочитаемости и ни для чего то там другого. что касается бесплатных советов выносить методы в отдельный модуль, то там где это возможно так и делается. или что? тут кто то предлагает к примеру циклы оформлять в отдельные процедуры, или там логику ЕСЛИ? Тебе всего лишь предлагают разделить код на несколько типов: код для работы с данными, код для работы с визуальным представлением данных, а также реакцией на пользовательские действия. У тебя похоже пока всё находится в одной куче и скорее всего данные, находящиеся в UI контролах у тебя и есть данные программы. Поэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд. Может конечно на самом деле у тебя всё иначе, но по сути мы играем в телепатов исходя из твоих вопросов. В общем пока смирись с тем, что каждый первый тебя воспринимает как очередного агрессивного "формошлёпщика" или какая там нынче терминология? Ты не понимаешь, что делаешь не так, не понимаешь почему это не так и агрессивно отстаиваешь своё "не так". Реабилитироваться пока тебе не удалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:44 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
вставлю пять копеек меня например очень впечатлил MVP http://www.danieleteti.it/a-simple-start-with-mvp-in-delphi-for-win32-part-2/ очень удобная штука ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:09 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
авторПоэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд да ни с чем выше перечисленным лично Я не сталкиваюсь. Мой код работает как предначертано и исключений не выдает. просто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет. но... была слабая надежда что кто то это уже раскопал. и вот ее, надежды, уже нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:47 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
PcrepairавторПоэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд да ни с чем выше перечисленным лично Я не сталкиваюсь. Мой код работает как предначертано и исключений не выдает. Тут ты либо противоречишь сам себе, либо у тебя нет никаких проблем и тебе не надо ничего переносить в другие модули. У кода "работа без исключений" только лишь один из параметров качества. А ещё есть такое понятие как "сопровождаемость кода", которое может измеряться временем на устранение найденной ошибки, временем на добавление новой функции, временем на понимание кода для новых людей (или для тебя через длинный промежуток времени). Pcrepairпросто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет. но... была слабая надежда что кто то это уже раскопал. и вот ее, надежды, уже нет. Эти фичи находятся не в редакторе, а в изначальной архитектуре/дизайне кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 19:55 |
|
||
|
Перенос кода из основной формы в модуль
|
|||
|---|---|---|---|
|
#18+
Pcrepair, авторМой код работает как предначертано и исключений не выдает. просто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет. Если всё замечательно работает, зачем вообще куда-то что-то переносить? Тем более описанным тобой способом? Пусть лежит на форме, раз уж так сделал, зачем бабку колошматить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 20:12 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39728652&tid=2040136]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 432ms |

| 0 / 0 |
