Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Перенос кода из основной формы в модуль  [new]
DimaBr
Member

Откуда:
Сообщений: 10756
Народ, сегодня ж не пятница, завязывайте демагогию!!!
5 ноя 18, 23:25    [21724713]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 97
DimaBr,
сегодня еще пятница, последняя из длинных пятниц в этом году.
5 ноя 18, 23:31    [21724717]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Valery_B
Member

Откуда: Москва
Сообщений: 1810
Pcrepair,

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

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

Типичный код, для типичного Делфи "программиста".
Если в кратце, то каждый метод должен состоять не более чем из 3-5 строк кода.
Pcrepair
Вопрос : нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать.

Есть.
В меню Refactor -> extract interface/superclass/method.
Но что бы грамотно пользоваться, почитай про модель MVC
6 ноя 18, 10:43    [21724948]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
Valery_B
Есть.
В меню Refactor -> extract interface/superclass/method

Код с форм в другой класс/модуль так не перенести, только на ту же самую форму.
6 ноя 18, 10:55    [21724968]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
DimaBr
Member

Откуда:
Сообщений: 10756
Используйте Регионы и проблема длинного кода решится
6 ноя 18, 10:57    [21724970]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
cptngrb
Member

Откуда:
Сообщений: 229
а потом говорят, что delphi не популярна из-за высокой цены IDE... а комьюнити просто прелестно. Какашки, вентилятор, все есть
6 ноя 18, 11:06    [21724985]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2922
Pcrepair,

Когда программист делает что-то противоестественное, он должен максимально страдать. Думаю, что это как раз твой случай. Чем больше страданий - тем ближе путь к катарсису.
6 ноя 18, 11:11    [21724989]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Cane Cat Fisher
Member

Откуда:
Сообщений: 1701
Pcrepair
частенько код обработки (нажать на батон к примеру) занимает несколько сот строк, приходится переность код в отдельный модуль.
при этом нужно добавлять кучу ссылок на основную форму (типа: uMainForm.Memo1.Text) что несколько утомляет.


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

Но для этого лучше разбивать код на отдельные методы этой же формы. Если есть иерархия форм - выносить общие методы в предков. Но выносить такой код в модули тут совсем не в тему. Выносить из формы в модули надо только тот код, что не содержит прямых ссылок на компоненты формы.
6 ноя 18, 11:12    [21724991]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Valery_B
Member

Откуда: Москва
Сообщений: 1810
Да, про MVC на Делфи-форумах говорить бесполезно.
6 ноя 18, 11:27    [21725009]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
roschinspb
Member

Откуда: С-Пб
Сообщений: 1549
Valery_B
Да, про MVC на Делфи-форумах говорить бесполезно.
Да почему же? Просто в Delphi используются несколько иные термины. dfm-ки это будут представлениями, юниты с формами это контроллеры, а датамодули, или просто юниты без форм будут моделями.
В данном случае есть подозрение, что тема является стебом.
6 ноя 18, 15:25    [21725382]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3479
Valery_B,

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

но на самом деле в подавляющем большинстве случаев форма уже часть MVC, только Model держится либо в голове либо в БД
6 ноя 18, 15:29    [21725386]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3479
roschinspb
Да почему же? Просто в Delphi используются ...
он имеет ввиду что продавать чистый воздух в альпийских лугах, бессмысленно :-)
6 ноя 18, 15:37    [21725400]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
roschinspb
Member

Откуда: С-Пб
Сообщений: 1549
V.Borzov
JaDi,
Да, когда баловался своими компонентами, эта проблема вставала в полный рост: надо подписаться на чей-то OnClose, например, или OnClick, или еще какой-нибудь On, и сохраняешь то, что там уже вписано, потом суешь свое. И боишься: а вдруг то, что ты сохранил, чтобы также исполнить, будет принадлежать удаленному объекту... Было бы удобнее просто указать: вот при OnClick еще и мою процедурку выполните...
Обвешивание контролов событиями зачастую приводит к тому, что потом хрен разберешься где что привешено, в трех в пяти местах поменял, а в шестом забыл (и так после десяти итераций). А если гипотетически 10 кликов на каждую кнопку вешать, то вообще ахтунг. Когда надо несколько методов выполнять то гораздо нагляднее вызывать их последовательно в одном onExecute да и историю с системе контроля версий удобнее будет анализировать. Будь на то моя воля, я бы вообще onClick выпилил.
6 ноя 18, 15:45    [21725416]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
AlBor
Member

Откуда: Россия
Сообщений: 154
Valery_B,

Тоже хотел упомянуть. Концепция MVC (Model-View-Controller: модель-вид-контроллер).
Но боюсь тут и сегодня это неуместно. Хотя, и ничего сложного нет.
6 ноя 18, 15:59    [21725443]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Pcrepair
Member

Откуда:
Сообщений: 667
Cane Cat Fisher
Поэтому такой перенос кода в отдельный модуль не приведет к повторному использованию кода этого модуля, и смысл может быть только в декомпозиции для удобочитаемости.


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

чтоб не создавать лишних тем еще вопрос :
в РАД есть возможность сворачивать код процедур клякнув мышью(ну чтоб поле обзора не занимали). нет ли в РАД канопочки, нажав на которую можно свернуть ВСЕ код всех процедур(ну чтоб не клякать по пять минут, у меня там в некоторых модулях до 50-и процедур, пока все свернешь) ?
6 ноя 18, 16:18    [21725472]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2922
roschinspb,

Я уже довольно давно почти 100% обработчиков веду в экшнах, про OnClick забыл давно, всё OnExecute. Ну а экшн можно клеить почти куда угодно.
6 ноя 18, 16:25    [21725483]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Pcrepair
Member

Откуда:
Сообщений: 667
да, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?
6 ноя 18, 16:31    [21725490]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3621
Pcrepair
да, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?
Это исключение. У таймера можно использовать только TTimer.OnClick.
6 ноя 18, 16:42    [21725514]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Valery_B
Member

Откуда: Москва
Сообщений: 1810
Pcrepair
да, это конечно все клево, экшены и тд. а у таймера чота не нашел Я Action, нетути. иииии?


procedure TForm1.Timer1Timer(Sender:TObject);
begin
 MyActions.Timer1Action.Execute;
end;
6 ноя 18, 16:51    [21725528]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimonka
Member

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

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

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

В общем пока смирись с тем, что каждый первый тебя воспринимает как очередного агрессивного "формошлёпщика" или какая там нынче терминология? Ты не понимаешь, что делаешь не так, не понимаешь почему это не так и агрессивно отстаиваешь своё "не так". Реабилитироваться пока тебе не удалось.
6 ноя 18, 17:44    [21725634]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
AlexeyM123
Member

Откуда:
Сообщений: 134
вставлю пять копеек

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

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

очень удобная штука
6 ноя 18, 18:09    [21725671]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Pcrepair
Member

Откуда:
Сообщений: 667
автор
Поэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд

да ни с чем выше перечисленным лично Я не сталкиваюсь. Мой код работает как предначертано и исключений не выдает. просто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет.
но... была слабая надежда что кто то это уже раскопал. и вот ее, надежды, уже нет.
6 ноя 18, 18:47    [21725720]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimonka
Member

Откуда:
Сообщений: 1107
Pcrepair
автор
Поэтому ты сталкиваешься с проблемой переносимости частей кода, перегрузкой кода обработчиков событий итд

да ни с чем выше перечисленным лично Я не сталкиваюсь. Мой код работает как предначертано и исключений не выдает.

Тут ты либо противоречишь сам себе, либо у тебя нет никаких проблем и тебе не надо ничего переносить в другие модули.

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

Pcrepair
просто лень самому ковырять интерфейс РАД в поисках всяких фичей, которых скорее всего и нет.
но... была слабая надежда что кто то это уже раскопал. и вот ее, надежды, уже нет.
Эти фичи находятся не в редакторе, а в изначальной архитектуре/дизайне кода.
6 ноя 18, 19:55    [21725815]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2922
Pcrepair,

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


Если всё замечательно работает, зачем вообще куда-то что-то переносить? Тем более описанным тобой способом? Пусть лежит на форме, раз уж так сделал, зачем бабку колошматить...
6 ноя 18, 20:12    [21725832]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 339
Pcrepair
Мой код работает как предначертано
Шикарные слова!) Нацарапаю гвоздиком на мониторах, чтобы не забыть!
7 ноя 18, 04:15    [21726028]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Delphi Ответить