powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подформы
19 сообщений из 44, страница 2 из 2
Подформы
    #39571184
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналогично 21037875
...
Рейтинг: 0 / 0
Подформы
    #39571264
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийСделал себе такой компонент TFormPanel = class(TCustomPanel)

В дизайнтайме на нее кидаю компоненты как на панель, а
рантайме по вызову ShowModal открывается в виде формы.DimaBrАналогично 21037875

Не понял. В частности, чем это лучше фреймов или обычных форм?
...
Рейтинг: 0 / 0
Подформы
    #39571321
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВ частности, чем это лучше фреймов или обычных форм?
Нет отдельных файлов pas+dfm, не нужно передавать параметрами в другой модуль данные или указатели
...
Рейтинг: 0 / 0
Подформы
    #39571332
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr> Нет отдельных файлов pas+dfm

Не понял. Всё равно механизм тот же, только внутри проекта.


> не нужно передавать параметрами в другой модуль данные или указатели

Лучше на каком-то простеньком примере объяснить, ИМХО.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подформы
    #39571426
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простейший пример.
Есть Грид из 20 колонок, который мы хотим редактировать в отдельной форме, удобно расположив контролы.
Для этого нам нужно создать отдельную форму, расположить на ней контролы, передать в неё (форму) DataSource от грида и вручную подключить каждый DB-контрол. Или же из дополнительно формы сделать USES основной и подключить контролы в дизайнере, при этом получается "жёсткое" связывание.
Будь все эти контролы в форме с гридом, было бы гораздо проще.
...
Рейтинг: 0 / 0
Подформы
    #39571435
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrпередать в неё (форму) DataSource от грида и вручную подключить каждый DB-контрол.
Не понял, зачем так извращаться. DataSource сделать в форме, передавать DataSet, никаких проблем.
...
Рейтинг: 0 / 0
Подформы
    #39571457
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerschiМне даже трудно представить, как в дизайн-тайме форму в форму вставить.
Верно. Поэтому, когда нужно, например, организовать мастер-деталь между вставляемыми фрагментами, с фреймами это делается элементарно, а с формами начинается любимая песенка ламера "я крутой, я всё делаю в ран-тайме".

Я Тейксеру с Пачеко ламерами не считаю
...
Рейтинг: 0 / 0
Подформы
    #39571474
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiЯ Тейксеру с Пачеко ламерами не считаю
Я Сенну тоже ламером не считаю. А вот ребятишек, гоняющих так по улицам - очень даже считаю. Намёк понят?
...
Рейтинг: 0 / 0
Подформы
    #39571498
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНе понял, зачем так извращаться. DataSource сделать в форме, передавать DataSet, никаких проблем.
А к нему (Dataset) прицепить новый DataSource+DB-controls.
Ну и кто извращенец ?
Не проще ли сразу передать DataSource от грида ?
...
Рейтинг: 0 / 0
Подформы
    #39571520
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrА к нему (Dataset) прицепить новый DataSource+DB-controls
Эта громкая фраза описывает одну строку кода.

DimaBrНу и кто извращенец ?
Ну давай подумаем. Некий человек утверждает, что решить задачу двадцатью строчками кода лучше, чем одной строчкой кода. Затем он же утверждает, что решить задачу внедрением на форму какой-то посторонней фигни лучше, чем двадцатью строчками кода. Кто же извращенец, кто же извращенец....

Этот вопрос напоминает мне ситуацию на заре моей карьеры. Делали мы некую большую систему, по хорошо прописанному ТЗ. Вот только делали её несколько ну очень независимых разработчиков. В том смысле, что не было общего владения кодом, не было code review, было "каждый себе на уме". В итоге, когда это понесли на боевую базу, вдруг выяснилось, что часть форм дико тормозит, потому что одна программистка делала формы редактирования данных вот так:

Код: pascal
1.
2.
3.
Query.SQL.Text := 'select * from SomeTable';
Query.Filter := 'id = ' + IntToStr(id);
Query.Open;



А вот другой программист - которого ты мне сейчас и напомнил - отличился тем, что все задачи, которые он закрыл за полтора года, он сделал в рамках одной-единственной формы. Которая была ну оооочень настраиваемой.

DimaBrНе проще ли сразу передать DataSource от грида ?
По мне, проще не делать фигни. Если речь идёт о том, чтобы просмотреть данные из грида, то никакой отдельной формы не надо вообще. Супер-дизайнерское решение "детальная панелька с данными" известно не знаю какой по счёту десяток лет, изобретать больше нечего. Если же речь идёт о том, чтобы там был какой-то больший функционал, то нельзя передавать не то что DataSource, а даже и DataSet - потому что тогда любые манипуляции с данными в форме тут же отражаются в гриде, что совершенно и категорически некузяво.
...
Рейтинг: 0 / 0
Подформы
    #39571598
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr> Будь все эти контролы в форме с гридом, было бы гораздо проще.

В смысле, кладём на форму с гридом панель (делаем её невидимой и увеличиваем размеры формы), кидаём на неё все контролы и нужный дизайн, а в момент Х делаем FormPanel.ShowModal, который превращает брюки в шорты? Я правильно понял?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подформы
    #39571680
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
Подформы
    #39571688
Уважаемый автор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrДа

Ужос!
...
Рейтинг: 0 / 0
Подформы
    #39571698
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr> Да

Но это же неудобно... При чем неудобно в первую очередь в дизайн-тайм.
Даже если бы я выбрал подобный вариант - и-то вместо Panel использовал
бы Page/TabControl c двумя вкладками (или кидал бы Panel на одну из).

Впрочем, на вкус и цвет...

P.S. И что, никаких проблем и артефактов с невидимыми контролами,
в частности, с их обработчиками событий не возникает? Или это тоже
как-то настраивается в дизайн-тайм или ран-тайм (если да, то как?) ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подформы
    #39571707
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

А какие могут быть проблемы? Все работает.

Чем еще удобство подобных подформ - они наследуются вместе с формой.
Вот есть форма у DimaBr с 20 контролами - а у наследника появилось 21 поле. И чего делать?
В моем случае наследуем форму, добавляем на нее еще один контрол.
А если с отдельными формами... Наследуем форму, отдельно наследуем форму с конролами (или копируем, что намного хуже), как-то связываем их...
А с подформами работа ничем не отличается от работы с панелью на моей форме.
Самурай без меча подобен...самураю с мечом, но только без меча
...
Рейтинг: 0 / 0
Подформы
    #39571710
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений> А какие могут быть проблемы? Все работает.

Обработчики событий скрытых (невидимых) контролов
работают так же, как и для видимых. И какие могут быть
проблемы - можно нафантазировать. :) Как минимум, на
производительности это скажется не в лучшую сторону.

> А если с отдельными формами... Наследуем форму, отдельно наследуем
> форму с конролами (или копируем, что намного хуже), как-то связываем их...

Судя по описанному - вы просто "совместили" две формы
в одну (и соответственно, наследовать, достаточно одну)
и считаете это большим достижением. Не в смысле, что
я сильно критикую, но и пример с наследованием формы
с 20 полями достаточно умозрительный, ИМХО.

> А с подформами работа ничем не отличается от работы с панелью на моей форме.

Я тут подумал и вспомнил (придумал) ещё один вариант
(или способ применения) - когда-то давно я делал GUI c
редактированием записи не в отдельной форме, а в той
же форме на отдельной панели (для больших/сложных
датасетов это не очень удобно). Так вот ваш вариант
позволяет его комбинировать и настраивать - типа
чекбокса "редактировать в том же/в отдельном окне"
без необходимости докать отдельную форму внутрь.
Хотя на мой вкус - это те же яйца, но в профиль.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подформы
    #39572467
Чингис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerDimaBrА к нему (Dataset) прицепить новый DataSource+DB-controls
Эта громкая фраза описывает одну строку кода.

DimaBrНу и кто извращенец ?
Ну давай подумаем. Некий человек утверждает, что решить задачу двадцатью строчками кода лучше, чем одной строчкой кода. Затем он же утверждает, что решить задачу внедрением на форму какой-то посторонней фигни лучше, чем двадцатью строчками кода. Кто же извращенец, кто же извращенец....

Этот вопрос напоминает мне ситуацию на заре моей карьеры. Делали мы некую большую систему, по хорошо прописанному ТЗ. Вот только делали её несколько ну очень независимых разработчиков. В том смысле, что не было общего владения кодом, не было code review, было "каждый себе на уме". В итоге, когда это понесли на боевую базу, вдруг выяснилось, что часть форм дико тормозит, потому что одна программистка делала формы редактирования данных вот так:

Код: pascal
1.
2.
3.
Query.SQL.Text := 'select * from SomeTable';
Query.Filter := 'id = ' + IntToStr(id);
Query.Open;



А вот другой программист - которого ты мне сейчас и напомнил - отличился тем, что все задачи, которые он закрыл за полтора года, он сделал в рамках одной-единственной формы. Которая была ну оооочень настраиваемой.

DimaBrНе проще ли сразу передать DataSource от грида ?
По мне, проще не делать фигни. Если речь идёт о том, чтобы просмотреть данные из грида, то никакой отдельной формы не надо вообще. Супер-дизайнерское решение "детальная панелька с данными" известно не знаю какой по счёту десяток лет, изобретать больше нечего. Если же речь идёт о том, чтобы там был какой-то больший функционал, то нельзя передавать не то что DataSource, а даже и DataSet - потому что тогда любые манипуляции с данными в форме тут же отражаются в гриде, что совершенно и категорически некузяво.







ну как правильно писать коды?
...
Рейтинг: 0 / 0
Подформы
    #39574377
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по мотивам холивара нашел интересные ссылки

Некоторые особенности построения пользовательского интерфейса программ.Один из вариантов организации
delphikingdom
архитектура на основе Form
есть сорцы

Применение фреймов для написания “правильных” приложений
delphimaster
архитектура на основе Frame
есть сорцы
...
Рейтинг: 0 / 0
Подформы
    #39574381
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати 1ая ссылка отсылает к замечательной книге
Delphi 3: библиотека программиста
от Д. Тейлор, Дж. Мишель, Дж. Пенман

главе 10. Модели, виды и фреймы

нет ли у кого кодов к ней?

здесь описан, еще в дремучие времена, MVVM на основе interface
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подформы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]