|
|
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
Смотрю проект, при переключении страницы в pagecontrol, вызывается несколько функций, выполняющих определённые, базовые действия: пересоздают popupmenu делает requery. Так вот в этих popupmenu и requery находится куча if-ов выполняющих действие в зависимости от установившейся страницы. Есть ли возможность, все эти действия как-то вынести отдельно? в теории, все действия для каждой TabSheet можно вынести в onShow, есть ли минусы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2020, 18:50 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
mkr, Совершенно всё равно где вызывать, разве если Pages могут появляться динамически, то с OnShow - сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2020, 19:30 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
Вместо IF-ов можно использовать CASE, но хрен редьки не слаще. С IF-ами хоть понятно к какой вкладке код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2020, 19:40 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
mkr при переключении страницы в pagecontrol, вызывается несколько функций, выполняющих определённые, базовые действия: пересоздают popupmenu делает requery. Когда коту нефиг делать, он пересоздаёт popupmenu... mkr в теории, все действия для каждой TabSheet можно вынести в onShow В OnShow чего? mkr Так вот в этих popupmenu и requery находится куча if-ов выполняющих действие в зависимости от установившейся страницы. Есть ли возможность, все эти действия как-то вынести отдельно? Есть куча возможностей отрефакторить невменяемый код. Но чтобы ответить, как именно это стоит сделать - нужно смотреть на этот код и на требования к интерфейсу, отвечать в общем виде бессмысленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2020, 19:41 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
У меня это сделано так: 1. К каждой вкладке привязан объект-наследник некоторого TCustomTabControl 2. При переключении вкладки ссылка на текущий объект сохраняется в FCurrentControl: TCustomTabControl 3. Все действия на вкладке вызывают методы 2 пункт можно убрать, если объект хранить в Tag вкладки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 15:05 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
Вместо кучи if-ов можно использовать for. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 15:25 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
Мои 5 копеек - что If-ы, что CASE, что другой спагетти-вариант лучше (удобнее в сопровождении) независимых обработчиков (OnShow и пр.) отдельных вкладок. Хотя разумнее рефакторить, конечно, если есть время и нет задач поважнее. Например, надо посмотреть, а чем там код для вкладок собсно отличается - возможно, его можно упростить/объединить. Возможно, сам интерфейс (пейджконтрол или некоторые вкладки) можно упростить/улучшить. И т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 13:00 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Мои 5 копеек - что If-ы, что CASE, что другой спагетти-вариант При этих словах Дейкстра перевернулся в гробу и подумал много тёплых ласковых слов про современных разработчиков. Гаджимурадов Рустам Например, надо посмотреть, а чем там код для вкладок собсно отличается Провангую, что Код: pascal 1. 2. 3. 4. снимет половину их необходимости в if-ах. Про более серьёзные улучшения я даже не собираюсь начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 13:22 |
|
||
|
ОФФТОП. Как избавиться от кучи if-ов при смене pagecontrol
|
|||
|---|---|---|---|
|
#18+
softwarer> При этих словах ЯННП. Не спагетти или что ? > Провангую, что Нет смысла гадать. С этой кверей ведь всё равно ещё что-то кроме открытия делается, наверняка - заполнение параметров, загрузка чего-то там и пр. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 13:50 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=39&tid=2038102]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 369ms |

| 0 / 0 |
