|
|
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Шавлюк ЕвгенийСделал себе такой компонент TFormPanel = class(TCustomPanel) В дизайнтайме на нее кидаю компоненты как на панель, а рантайме по вызову ShowModal открывается в виде формы.DimaBrАналогично 21037875 Не понял. В частности, чем это лучше фреймов или обычных форм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 11:21 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамВ частности, чем это лучше фреймов или обычных форм? Нет отдельных файлов pas+dfm, не нужно передавать параметрами в другой модуль данные или указатели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 12:41 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
DimaBr> Нет отдельных файлов pas+dfm Не понял. Всё равно механизм тот же, только внутри проекта. > не нужно передавать параметрами в другой модуль данные или указатели Лучше на каком-то простеньком примере объяснить, ИМХО. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 12:55 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Простейший пример. Есть Грид из 20 колонок, который мы хотим редактировать в отдельной форме, удобно расположив контролы. Для этого нам нужно создать отдельную форму, расположить на ней контролы, передать в неё (форму) DataSource от грида и вручную подключить каждый DB-контрол. Или же из дополнительно формы сделать USES основной и подключить контролы в дизайнере, при этом получается "жёсткое" связывание. Будь все эти контролы в форме с гридом, было бы гораздо проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 14:40 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
DimaBrпередать в неё (форму) DataSource от грида и вручную подключить каждый DB-контрол. Не понял, зачем так извращаться. DataSource сделать в форме, передавать DataSet, никаких проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 14:43 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerschiМне даже трудно представить, как в дизайн-тайме форму в форму вставить. Верно. Поэтому, когда нужно, например, организовать мастер-деталь между вставляемыми фрагментами, с фреймами это делается элементарно, а с формами начинается любимая песенка ламера "я крутой, я всё делаю в ран-тайме". Я Тейксеру с Пачеко ламерами не считаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 15:01 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
schiЯ Тейксеру с Пачеко ламерами не считаю Я Сенну тоже ламером не считаю. А вот ребятишек, гоняющих так по улицам - очень даже считаю. Намёк понят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 15:15 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerНе понял, зачем так извращаться. DataSource сделать в форме, передавать DataSet, никаких проблем. А к нему (Dataset) прицепить новый DataSource+DB-controls. Ну и кто извращенец ? Не проще ли сразу передать DataSource от грида ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 15:55 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
DimaBrА к нему (Dataset) прицепить новый DataSource+DB-controls Эта громкая фраза описывает одну строку кода. DimaBrНу и кто извращенец ? Ну давай подумаем. Некий человек утверждает, что решить задачу двадцатью строчками кода лучше, чем одной строчкой кода. Затем он же утверждает, что решить задачу внедрением на форму какой-то посторонней фигни лучше, чем двадцатью строчками кода. Кто же извращенец, кто же извращенец.... Этот вопрос напоминает мне ситуацию на заре моей карьеры. Делали мы некую большую систему, по хорошо прописанному ТЗ. Вот только делали её несколько ну очень независимых разработчиков. В том смысле, что не было общего владения кодом, не было code review, было "каждый себе на уме". В итоге, когда это понесли на боевую базу, вдруг выяснилось, что часть форм дико тормозит, потому что одна программистка делала формы редактирования данных вот так: Код: pascal 1. 2. 3. А вот другой программист - которого ты мне сейчас и напомнил - отличился тем, что все задачи, которые он закрыл за полтора года, он сделал в рамках одной-единственной формы. Которая была ну оооочень настраиваемой. DimaBrНе проще ли сразу передать DataSource от грида ? По мне, проще не делать фигни. Если речь идёт о том, чтобы просмотреть данные из грида, то никакой отдельной формы не надо вообще. Супер-дизайнерское решение "детальная панелька с данными" известно не знаю какой по счёту десяток лет, изобретать больше нечего. Если же речь идёт о том, чтобы там был какой-то больший функционал, то нельзя передавать не то что DataSource, а даже и DataSet - потому что тогда любые манипуляции с данными в форме тут же отражаются в гриде, что совершенно и категорически некузяво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 16:11 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
DimaBr> Будь все эти контролы в форме с гридом, было бы гораздо проще. В смысле, кладём на форму с гридом панель (делаем её невидимой и увеличиваем размеры формы), кидаём на неё все контролы и нужный дизайн, а в момент Х делаем FormPanel.ShowModal, который превращает брюки в шорты? Я правильно понял? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 18:02 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
DimaBr> Да Но это же неудобно... При чем неудобно в первую очередь в дизайн-тайм. Даже если бы я выбрал подобный вариант - и-то вместо Panel использовал бы Page/TabControl c двумя вкладками (или кидал бы Panel на одну из). Впрочем, на вкус и цвет... P.S. И что, никаких проблем и артефактов с невидимыми контролами, в частности, с их обработчиками событий не возникает? Или это тоже как-то настраивается в дизайн-тайм или ран-тайм (если да, то как?) ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 00:03 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, А какие могут быть проблемы? Все работает. Чем еще удобство подобных подформ - они наследуются вместе с формой. Вот есть форма у DimaBr с 20 контролами - а у наследника появилось 21 поле. И чего делать? В моем случае наследуем форму, добавляем на нее еще один контрол. А если с отдельными формами... Наследуем форму, отдельно наследуем форму с конролами (или копируем, что намного хуже), как-то связываем их... А с подформами работа ничем не отличается от работы с панелью на моей форме. Самурай без меча подобен...самураю с мечом, но только без меча ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 00:35 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений> А какие могут быть проблемы? Все работает. Обработчики событий скрытых (невидимых) контролов работают так же, как и для видимых. И какие могут быть проблемы - можно нафантазировать. :) Как минимум, на производительности это скажется не в лучшую сторону. > А если с отдельными формами... Наследуем форму, отдельно наследуем > форму с конролами (или копируем, что намного хуже), как-то связываем их... Судя по описанному - вы просто "совместили" две формы в одну (и соответственно, наследовать, достаточно одну) и считаете это большим достижением. Не в смысле, что я сильно критикую, но и пример с наследованием формы с 20 полями достаточно умозрительный, ИМХО. > А с подформами работа ничем не отличается от работы с панелью на моей форме. Я тут подумал и вспомнил (придумал) ещё один вариант (или способ применения) - когда-то давно я делал GUI c редактированием записи не в отдельной форме, а в той же форме на отдельной панели (для больших/сложных датасетов это не очень удобно). Так вот ваш вариант позволяет его комбинировать и настраивать - типа чекбокса "редактировать в том же/в отдельном окне" без необходимости докать отдельную форму внутрь. Хотя на мой вкус - это те же яйца, но в профиль. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 00:54 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerDimaBrА к нему (Dataset) прицепить новый DataSource+DB-controls Эта громкая фраза описывает одну строку кода. DimaBrНу и кто извращенец ? Ну давай подумаем. Некий человек утверждает, что решить задачу двадцатью строчками кода лучше, чем одной строчкой кода. Затем он же утверждает, что решить задачу внедрением на форму какой-то посторонней фигни лучше, чем двадцатью строчками кода. Кто же извращенец, кто же извращенец.... Этот вопрос напоминает мне ситуацию на заре моей карьеры. Делали мы некую большую систему, по хорошо прописанному ТЗ. Вот только делали её несколько ну очень независимых разработчиков. В том смысле, что не было общего владения кодом, не было code review, было "каждый себе на уме". В итоге, когда это понесли на боевую базу, вдруг выяснилось, что часть форм дико тормозит, потому что одна программистка делала формы редактирования данных вот так: Код: pascal 1. 2. 3. А вот другой программист - которого ты мне сейчас и напомнил - отличился тем, что все задачи, которые он закрыл за полтора года, он сделал в рамках одной-единственной формы. Которая была ну оооочень настраиваемой. DimaBrНе проще ли сразу передать DataSource от грида ? По мне, проще не делать фигни. Если речь идёт о том, чтобы просмотреть данные из грида, то никакой отдельной формы не надо вообще. Супер-дизайнерское решение "детальная панелька с данными" известно не знаю какой по счёту десяток лет, изобретать больше нечего. Если же речь идёт о том, чтобы там был какой-то больший функционал, то нельзя передавать не то что DataSource, а даже и DataSet - потому что тогда любые манипуляции с данными в форме тут же отражаются в гриде, что совершенно и категорически некузяво. ну как правильно писать коды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 09:24 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
по мотивам холивара нашел интересные ссылки Некоторые особенности построения пользовательского интерфейса программ.Один из вариантов организации delphikingdom архитектура на основе Form есть сорцы Применение фреймов для написания “правильных” приложений delphimaster архитектура на основе Frame есть сорцы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 12:43 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
кстати 1ая ссылка отсылает к замечательной книге Delphi 3: библиотека программиста от Д. Тейлор, Дж. Мишель, Дж. Пенман главе 10. Модели, виды и фреймы нет ли у кого кодов к ней? здесь описан, еще в дремучие времена, MVVM на основе interface ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 12:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39574381&tid=2041417]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 438ms |

| 0 / 0 |
