Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Наследование фрейма и вложенность компонентов / 12 сообщений из 12, страница 1 из 1
05.05.2020, 17:48
    #39954367
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
Приложение UniGUI , Delphi Rio.

Есть фрейм, в котором есть сетка.
От этого фрейма создаю и наследую другой фрейм.
В другом фрейме я добавляю некий контейнер (TabControl - tcRef на картинке), внутрь которого перемещаю сетку.
И теперь при сохранении проекта получаю ошибку, что такая сетка уже существует:
A component named dbgData already exists.
Если сетку переименовать, то получаю другую ошибку при сохранении проекта:
Cannot rename component dbgData, component was introduced in an ancestor form.

Я пока не знаю, это проблема Delphi или UniGUI.
...
Рейтинг: 0 / 0
05.05.2020, 17:49
    #39954368
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
Вот в таком случае проблемы нет.
Но мне нужно, чтобы сетка лежала внутри TabControl
...
Рейтинг: 0 / 0
05.05.2020, 18:05
    #39954373
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
X11,

"Сетка" - ?
...
Рейтинг: 0 / 0
05.05.2020, 18:10
    #39954374
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
dbGrid
в моем случае TUniDBGrid
...
Рейтинг: 0 / 0
05.05.2020, 18:12
    #39954376
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
X11
Я пока не знаю, это проблема Delphi или UniGUI

В наследниках нельзя менять parent-а компонент (в дизайн-тайме). Проблема в том, что кто-то в принципе позволяет Вам это сделать.
...
Рейтинг: 0 / 0
05.05.2020, 18:14
    #39954377
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
это ужас, кошмар и неприемлемо
ну я выход нашел - первую сетку сделал невидимой и добавил вторую, её уже можно наследовать как хочу
...
Рейтинг: 0 / 0
05.05.2020, 18:18
    #39954379
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
X11
это ужас, кошмар и неприемлемо

Можно убиться об стену. Ну либо спроектировать иерархию наследования так, чтобы это не было проблемой. В целом, иерархию наследования следует строить так, чтобы потомки дополняли предка, а не переделывали его. Это, кстати, относится не только к визуальному наследованию.
...
Рейтинг: 0 / 0
05.05.2020, 19:25
    #39954399
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
X11
ужас, кошмар

Строчку кода, да поменяй владельца на лету.
...
Рейтинг: 0 / 0
05.05.2020, 19:25
    #39954400
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
ъъъъъ
X11
ужас, кошмар

Строчку кода, да поменяй parent-а на лету.
...
Рейтинг: 0 / 0
05.05.2020, 19:31
    #39954401
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
Ага, т.е. во время исполнения уже менять можно...
попробую, спасибо.
...
Рейтинг: 0 / 0
05.05.2020, 20:05
    #39954415
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
ъъъъъ
Строчку кода, да поменяй владельца на лету.

Лучше сделать базовый класс вообще не привязанным (и не нуждающимся) в гриде. А то потом появляется аналитик с запросом "а вот здесь чтобы был не грид, а дерево, причём только здесь и здесь, а в остальных местах как прежде", и внезапно оказывается, что работы утроилось, причём в основном переделывать.

Я пришёл к паттерну "базовый фрейм с операциями" => "фрейм, специализированный для работы с гридом" => "конкретные реализации". И в примере автора TabControl с гридом появлялся бы на конкретной реализации, просто тем или иным образом привязывая свой грид как "тот, с которым и надо работать" (ну хотя бы тупо на уровне FindComponent).
...
Рейтинг: 0 / 0
05.05.2020, 20:30
    #39954419
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование фрейма и вложенность компонентов
softwarer
Я пришёл к паттерну "базовый фрейм с операциями" => "фрейм, специализированный для работы с гридом" => "конкретные реализации"

У меня примерно то же самое, например:

TBaseActivatedFrame <- TBaseTreeFrame <- что-то конкретное.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Наследование фрейма и вложенность компонентов / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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