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

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

Вопрос : нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать.
5 ноя 18, 17:22    [21724371]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46152

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

Это должно не просто утомлять, а приводить к отрыванию рук и увольнению за профнепригодность.

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

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 667
попрошу отвечать по существу заданного вопроса, а не засорять форум личным ... потоком сознания.
5 ноя 18, 17:48    [21724402]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
Есть. CTRL+X, CTRL+V
5 ноя 18, 18:01    [21724414]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46152

Pcrepair
попрошу отвечать по существу заданного вопроса, а не засорять форум личным ... потоком
сознания.

Попробуй прочитать моё сообщение чуть дальше первой строки.

Posted via ActualForum NNTP Server 1.5

5 ноя 18, 18:06    [21724421]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
makhaon
Member

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

врятли найдешь что-то такое готовое, потому что так никто не делает.
5 ноя 18, 18:16    [21724434]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimonka
Member

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

Вопрос : нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать.

Если коротко, то сначала стоит разобраться почему у тебя не получается перенести код, почитать про сильное связывание кода.

Ещё один вероятный ответ - тебе не нужно этого делать.
5 ноя 18, 18:48    [21724465]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 339
Pcrepair
попрошу отвечать по существу заданного вопроса, а не засорять форум личным ... потоком сознания.
тебе дали конкретный совет. Если ты его не понял, то меняй профессию)))
5 ноя 18, 19:12    [21724483]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Pcrepair
Member

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

для особо одаренных повторю ВОПРОС : нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать.

не надо давать глупых советов, надо ответить по существу вопроса или просто помолчать
5 ноя 18, 19:45    [21724517]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 97
Pcrepair,

для перпноса кода между модулями и классами есть отличный бесплатный инструмент: MMCE.
Только тебе придется разобраться, как им пользоваться.
5 ноя 18, 20:01    [21724535]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46152

Pcrepair
нет ли способа в РАД ХЕ10 как то это дело ускорить, типа автоматизировать.

Ответ: НЕ ДЕЛАТЬ ЭТО вообще - гораздо быстрее, чем делать это любым способом.

Posted via ActualForum NNTP Server 1.5

5 ноя 18, 20:02    [21724536]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
ziv-2014
Member

Откуда:
Сообщений: 146
Pcrepair,
Напиши хелпер.
5 ноя 18, 20:06    [21724539]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Dimonka
Member

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

Предлагаю такой слегка колхозный вариант: передай все используемые компоненты формы в твою процедуру как параметры.
5 ноя 18, 20:35    [21724549]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
V.Borzov
Member

Откуда: Саратов
Сообщений: 249
Pcrepair,
А разве можно описание класса раскидать на модули? Все методы класса будут всегда в одном модуле собраны. Я даже никогда и не задумывался над этим, ибо это кажется совершенно естественным. А значит, и автоматизация по их созданию всегда будет крутиться внутри одного модуля. А вот какие полотна внутри будете писать, всё ли прямо тут опишете, или сошлетесь на другую функцию, которая где-то там лежит - личное дело разработчика. И что тут вообще автоматизировать-то, непонятно. Чем нам могут тут разработчики IDE помочь-то? Вот надо нам баттон.Onclick, мы щелкаем, IDE создаст его, пустое тело, естественно, в этом же модуле. Что еще нужно от IDE?

И вообще: я раньше парился парился насчет того, что надо разбивать содержимое функций класса на как можно больше модулей как можно меньшего размера, а глянул VirtualTreeview, да и успокоился :) Там 40 тыс строк, и всё в одном VirtualTrees.pas. :)

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

И, кстати, форум не Ваш личный, так кто что хочет, тот то и пишет, автор топика не вправе указывать, только злой модератор, его все боятся, да :)
5 ноя 18, 21:07    [21724593]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
V.Borzov
Member

Откуда: Саратов
Сообщений: 249
А вот это немного не по теме, но, мне кажется, в тему будет: :))
Меня как-то один программист огорошил (пользуется MS SQL, визуал пишет на FoxPro, товарищ серьезный и написал, вроде, много хороших программ). Ваш Delphi, говорит, как-то неправильно всё автоматизирует. Описания функций, реагирующих на события, говорит, у вас принадлежат не компонентам, которые их используют, а форме, на которой лежат эти компоненты. Это ж, говорит, неправильно, это ж чушь какая-то :) Все OnClick, говорит, должны принадлежать тому компоненту, на клик которого они реакцию и описывают. Я тогда и не нашелся, что ему ответить, с перепугу, с лету, такой авторитет, всё-таки. Только дома переварил и как-то смог сформулировать...
5 ноя 18, 21:17    [21724602]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
V.Borzov,

Так-то он дело говорит. Подписочная модель (когда на одно и то же событие подписываются и реагируют разные независимые друг от друга объекты) популярна во многих современных языках. Можно даже сказать, что это является трендом и общепринятым путем. И у делфи в этом плане есть ограничения типа невозможности без костылей добавить несколько обработчиков.
5 ноя 18, 22:14    [21724656]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 97
V.Borzov
А вот это немного не по теме, но, мне кажется, в тему будет: :))
Меня как-то один программист огорошил (пользуется MS SQL, визуал пишет на FoxPro, товарищ серьезный и написал, вроде, много хороших программ). Ваш Delphi, говорит, как-то неправильно всё автоматизирует. Описания функций, реагирующих на события, говорит, у вас принадлежат не компонентам, которые их используют, а форме, на которой лежат эти компоненты. Это ж, говорит, неправильно, это ж чушь какая-то :) Все OnClick, говорит, должны принадлежать тому компоненту, на клик которого они реакцию и описывают. Я тогда и не нашелся, что ему ответить, с перепугу, с лету, такой авторитет, всё-таки. Только дома переварил и как-то смог сформулировать...

Да, было бы классно не тупо лепить контролы, а строить интерфейс из их наследников.

Вообще-то, и в Delphi даже были подвижки в данном направлении - например, использование фреймов: ты агрегируешь не просто готовые TFrame, а собственную ("визуальную"!) реализацию наследника класса TFrame, что весьма круто и порой очень удобно.
5 ноя 18, 22:24    [21724669]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 97
JaDi
V.Borzov,

Так-то он дело говорит. Подписочная модель (когда на одно и то же событие подписываются и реагируют разные независимые друг от друга объекты) популярна во многих современных языках. Можно даже сказать, что это является трендом и общепринятым путем. И у делфи в этом плане есть ограничения типа невозможности без костылей добавить несколько обработчиков.

Мне кажется, речь не просто о механизме реакции на события, а в целом о настройке поведения элемента в наследнике класса элемента.
5 ноя 18, 22:28    [21724673]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
V.Borzov
Member

Откуда: Саратов
Сообщений: 249
JaDi,
Ну да, если надо перехватить OnClick, то он сохраняем ссылку на его текущую процедуру, втыкаем свою. Когда срабатывает, попадает в наш OnClick, где мы, на свой страх и риск, кстати, исполняем сначала тот, что торчал до нас там, а потом свой. А как другие делают? Наверное, что-то вроде подписки на FreeNotification?
5 ноя 18, 22:30    [21724676]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
asviridenkov
Member

Откуда:
Сообщений: 3827
Фэйтл Эра
Вообще-то, и в Delphi даже были подвижки в данном направлении - например, использование фреймов: ты агрегируешь не просто готовые TFrame, а собственную ("визуальную"!) реализацию наследника класса TFrame, что весьма круто и порой очень удобно.


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

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


Мне кажется, это убивает "магию формошлепства", хотя и увеличивает надежность приложения. :)
5 ноя 18, 22:43    [21724687]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
V.Borzov
Member

Откуда: Саратов
Сообщений: 249
JaDi,
Да, когда баловался своими компонентами, эта проблема вставала в полный рост: надо подписаться на чей-то OnClose, например, или OnClick, или еще какой-нибудь On, и сохраняешь то, что там уже вписано, потом суешь свое. И боишься: а вдруг то, что ты сохранил, чтобы также исполнить, будет принадлежать удаленному объекту... Было бы удобнее просто указать: вот при OnClick еще и мою процедурку выполните...
5 ноя 18, 22:48    [21724689]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
asviridenkov
Member

Откуда:
Сообщений: 3827
Фэйтл Эра
asviridenkov
...Следующий шаг, интерфейс описывается языком контролов или даже фреймов с контролами, а языком функциональных фреймов, абстрагированным от конкретной реализации.


Мне кажется, это убивает "магию формошлепства", хотя и увеличивает надежность приложения. :)


По мере роста сложности проекта, плюсы перевешивают. Ну и бонусами автоматический порт хоть на другие платформы хоть в веб, легкость смены среды разработки, отсутствие привязки к конкретным библиотекам ну и.т.д.
5 ноя 18, 22:50    [21724690]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 97
asviridenkov
...По мере роста сложности проекта, плюсы перевешивают...

С этим я согласен, но я говорил о маркетинге.
Куда проще добиться от клиента восторга, накидав батонов на форму прямо в его присутствии.
5 ноя 18, 22:57    [21724692]     Ответить | Цитировать Сообщить модератору
 Re: Перенос кода из основной формы в модуль  [new]
asviridenkov
Member

Откуда:
Сообщений: 3827
Фэйтл Эра
asviridenkov
...По мере роста сложности проекта, плюсы перевешивают...

С этим я согласен, но я говорил о маркетинге.
Куда проще добиться от клиента восторга, накидав батонов на форму прямо в его присутствии.


Да в общем то кидательство сохраняются, только кидаются не контролы а функциональные фреймы. В каком-то смысле еще более RAD получается
5 ноя 18, 23:08    [21724703]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Delphi Ответить