|
|
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Хочу сделать подформу, чтобы не использовать (копировать+вставить). К примеру, форма поиска. Где, что и как искать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 09:02 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Чингис, ключевое слово для поиска в google - репозиторий (Object Repository) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 09:29 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
krapotkinэто называется фрейм Dockingпоправил :) Одна и та же форма может быть и обычной и встроенной в любой контейнер (панель, табшит и пр.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 10:19 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
вот плохая идея формы в формы пихать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 10:44 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
krapotkinвот плохая идея формы в формы пихать Странно. А чего в ней плохого ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 10:45 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
krapotkinэто называется фрейм да че то такое видел, но не ковырялся щас посмотрел пошло заработало Frame docing (вроде тоже интересно) и repository (поковыряюсь) спс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 12:42 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
schiСтранно. А чего в ней плохого ? Например, неработоспособность в дизайн-тайме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 12:43 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerschiСтранно. А чего в ней плохого ? Например, неработоспособность в дизайн-тайме. Мне даже трудно представить, как в дизайн-тайме форму в форму вставить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 15:09 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
schiМне даже трудно представить, как в дизайн-тайме форму в форму вставить. Верно. Поэтому, когда нужно, например, организовать мастер-деталь между вставляемыми фрагментами, с фреймами это делается элементарно, а с формами начинается любимая песенка ламера "я крутой, я всё делаю в ран-тайме". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 15:15 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
У меня формы наследуются, наследоваться должны и настроечные формы. Сделал себе такой компонент Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. В дизайнтайме на нее кидаю компоненты как на панель, а рантайме по вызову ShowModal открывается в виде формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 17:45 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Чингис, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 19:43 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
у них разные очереди сообщений и табом не походить из одной в другую в общем, чересчур это... а фреймы действительно чаще всего лучше динамически создавать конечно, нужно представлять задачу, чтобы решать точно но классика слева нажимаем на меню, кнопку, дерево - справа показываем что-то для выбранного элемента это точно динамические фреймы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 22:34 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerschiМне даже трудно представить, как в дизайн-тайме форму в форму вставить. Верно. Поэтому, когда нужно, например, организовать мастер-деталь между вставляемыми фрагментами, с фреймами это делается элементарно, а с формами начинается любимая песенка ламера "я крутой, я всё делаю в ран-тайме".А зачем тебе это в дизайн-тайме? Сама идея докирования подразумевает непостоянство данной конструкции. У нас вот докирование используется очень часто. Причем аж на уровне: окно одного приложения на панели окна другого приложения. И ничего, вполне удобно. P.S. В новой дельфе с виду сделали наконец удобную реализацию Card Panel так что нынче фреймы и докирование станут нужны меньше чем раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2017, 23:51 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Не знал про "Docking", прикольно. А что лучше использовать, формы или фреймы? И зачем тогда вообще разрабатывались фреймы? если тоже самое можно сделать с обычной формой через Docking. И у формы, вроде, будет побольше возможностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 06:34 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Miracle9> А что лучше использовать, формы или фреймы? Эта тема много раз флеймилась, почитай. > И зачем тогда вообще разрабатывались фреймы? > если тоже самое можно сделать с обычной формой Не всё то же самое - в design-time конструировать нельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 07:39 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
rgreatА зачем тебе это в дизайн-тайме? Сама идея докирования подразумевает непостоянство данной конструкции. Самая идея докирования в данном случае - костыль для того, чтобы делать с помощью форм то, для чего предназначены фреймы. Ну а зачем в дизайн-тайме настраивать компоненты, и в том числе связи между компонентами... ты не находишь, что это немного смешной вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 15:17 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarer> ты не находишь, что это немного смешной вопрос? Мне в данном контексте более интересен другой вопрос - что было бы, если бы формы (в т.ч. все формы проекта) были бы доступны в Frames аналогично фреймам? P.S. Конечно, сопутствующие технические сложности и осилили бы борманы сабж - вопрос другой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 15:23 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамМне в данном контексте более интересен другой вопрос - что было бы, если бы формы (в т.ч. все формы проекта) были бы доступны в Frames аналогично фреймам? Ну, они в общем-то и так доступны. Если мне не изменяет память, во времена Delphi 1-2 у формы появилось такое замечательное свойство IsControl. Смысл его был в следующем: разрабатываешь обычную форму, а когда она тебя полностью устраивает, прописываешь в dfm это свойство - и получаешь компонент, который можешь бросать с палитры, настраивать итп. И его, вроде бы, до сих пор никто не отменял :) Ключевой смысл фрейма в том, что в дизайн-тайме доступны его экземпляры. Так же, как доступны экземпляры компонент (и в принципе доступны экземпляры форм через технологию выше). Были бы так доступны формы - ну, тогда действительно отдельно фреймы не требовались бы. Вообще, конечно, совокупность имеющихся подходов - с репозиторием и всем прочим - напоминает плохо продуманный зоопарк, лучше бы делали меньше, зато проектировали лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 15:48 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerБыли бы так доступны формы - ну, тогда действительно отдельно фреймы не требовались бы. Вообще, конечно, совокупность имеющихся подходов - с репозиторием и всем прочим - напоминает плохо продуманный зоопарк Именно. При чём есть подозрение, что это так "сложилось исторически стихийно" - сначала сделали что-то одно, потом другое, потом дали новый интерфейс для второго, но не для первого и т.п. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 16:08 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerСамая идея докирования в данном случае - костыль для того, чтобы делать с помощью форм то, для чего предназначены фреймы.На заборе тоже написано, однако я считаю что фреймы вообще - кривые костыли, область применения весьма узка. Сам посуди - форма универсальная. Ее можно и отдельно использовать и докировать. Фрейм-же можно использовать только в доке. Из плюсов у него только возможность настраивать его расположение в дизайн-тайме (при форме для этого достаточно предоставить панельку для дока в рантайме). Возможность же менять свойства элементов уже шлепнутого на форму фрейма - это вкусовщина. Кому польза, а мне так вообще мешает. Мне проще все 1 раз настроить на докируемой форме, и не боятся что я все случайно поломаю на шлепнутых фреймах. Ну а зачем в дизайн-тайме настраивать компоненты, и в том числе связи между компонентами... ты не находишь, что это немного смешной вопрос?Настройка связей в дизайн-тайме между компонентом формы и элементом фрейма - это имхо вообще bad design practice. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 17:17 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
rgreatНа заборе тоже написано, однако я считаю что В данном случае это не "на заборе написано" а "у топикстартера есть задача". Поэтому твоя реплика напоминает примерно следующий диалог: Топикстартер: У меня есть кусок чудесной свинины, как мне лучше приготовить его на ужин? Советчик: На ужин лучше приготовить рис с бобами! Свинину в помойку! Я считаю, вегетарианство - наш выбор! Соответственно, не вижу смысла спорить с изначально религиозными взглядами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 17:24 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
softwarerrgreatНа заборе тоже написано, однако я считаю что В данном случае это не "на заборе написано" а "у топикстартера есть задача". Поэтому твоя реплика напоминает примерно следующий диалог: Топикстартер: У меня есть кусок чудесной свинины, как мне лучше приготовить его на ужин? Советчик: На ужин лучше приготовить рис с бобами! Свинину в помойку! Я считаю, вегетарианство - наш выбор! Соответственно, не вижу смысла спорить с изначально религиозными взглядами. Я почему-то уверен, что Чингис сейчас меньше всего интересуется свининой ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 17:39 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
rgreat> Настройка связей в дизайн-тайме между компонентом формы rgreat> и элементом фрейма - это имхо вообще bad design practice. *рукалицо* Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 09:16 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#18+
krapotkinвот плохая идея формы в формы пихатьВсегда так делал и всё замечательно работает. Например, в проекте есть главная форма, на ней PageControl, у него несколько страниц, на каждой странице - пустая Panel. Затем в ран-тайме каждая отдельная форма ложится в свою Panel. Что вас конкретно не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 09:31 |
|
||
|
Подформы
|
|||
|---|---|---|---|
|
#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?all=1&fid=58&tid=2041417]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
181ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 515ms |

| 0 / 0 |
