Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / компонент TFrame. У кого есть опыт использования? / 25 сообщений из 32, страница 1 из 2
06.05.2019, 11:10
    #39810067
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Добрый день, уважаемые delphi-гуру

в help про Фреймы написано много полезных “вкусняшек” ... которых даже у Форм нет. Например, Фреймы можно вкладывать друг в друга, легко сконструировать как сложный компонент и хранить на палитре.
Т.е. Фреймы быстро создаются, легко используются и поддерживаются средой разработки. Технология - мечта для RAD?

А какие недостатки есть у TFrame ?

Почему возникли сомнения, т.к. фреймы редко упоминаются. Почему забыли про эту "чудо-технологию"?
...
Рейтинг: 0 / 0
06.05.2019, 11:40
    #39810086
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1st,

Фреймы можно использовать - с ними проблем нет. Иногда проблемы появляются с некоторыми кривыми компонентами в дизайтайме на фреймах, которые во что бы то ни стало хотят быть на форме.
А так.. всё так и есть как ты описал - проблем нет - компоненты мечты Так сказать, с добрым утром..
...
Рейтинг: 0 / 0
06.05.2019, 11:44
    #39810088
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1st,

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

а так фреймы очень удобная штука, хоть на десктопе, хоть на мобилках
...
Рейтинг: 0 / 0
06.05.2019, 11:54
    #39810093
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
В некоторых версиях дельфи постоянно начинаются глюки при попытке наследования фреймов.
Я как-то делал проект, там был базовый фрейм для формы редактирования и 3-4 его варианта под конкретные данные - как же я задолбался, когда при каждом открытии наследуемых фреймов вылетали рандомные ошибки, потому что дельфя постоянно пыталась сохранить фрейм как форму.
...
Рейтинг: 0 / 0
06.05.2019, 12:08
    #39810108
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Dimonkaпроблемы появляются с некоторыми кривыми компонентами в дизайтайме на фреймах, которые во что бы то ни стало хотят быть на форме.
Спасибо за ответ. Весьма полезная информация, т.к. я вспомнил, что сам писал такой компонент, который ожидает Форму в дизайнтайме :-////
...
Рейтинг: 0 / 0
06.05.2019, 12:11
    #39810110
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
alekcvpВ некоторых версиях дельфи постоянно начинаются глюки
Спасибо за ответ.
Пожалуйста, поясните, эти глюки повились только при переходе на другую версию Delphi ?
...
Рейтинг: 0 / 0
06.05.2019, 12:23
    #39810122
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1stalekcvpВ некоторых версиях дельфи постоянно начинаются глюкиСпасибо за ответ.
Пожалуйста, поясните, эти глюки повились только при переходе на другую версию Delphi ? Возможно предыдущий оратор имел в виду ситуацию, когда есть какая-то иерархия фреймов, унаследованная от базового фрейма. Затем автор начинает перелопачивать базовый родительский фрейм (переименовывать/удолять компоненты, пересвязывать их как-то). Тогда да, может случиться конфуз. Но это касается любого визуального наследования в Дельфи - фреймы тут ни особо при чём. В формах те же самые проблемы.
...
Рейтинг: 0 / 0
06.05.2019, 12:35
    #39810134
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
DimonkaТогда да, может случиться конфуз. Но это касается любого визуального наследования в Дельфи - фреймы тут ни особо при чём. В формах те же самые проблемы.
Нет, автор имеет в виду ситуацию, когда в dfm-файле унаследованного фрейма после редактирования появляются свойства вроде "position", "windowstate" и прочие от TForm. В результате чего при последующем открытии появляются ошибки вида "свойство ххх не найдено в базовом классе". Лечится ручным удалением этих свойств из DFM-файла и исправлением индентификатора object на inherited там же. Проявлялось, ЕМНИП, на DX2, в более новых версиях я с фреймами не работал.
...
Рейтинг: 0 / 0
06.05.2019, 13:35
    #39810178
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
DimonkaЗатем автор начинает перелопачивать базовый родительский фрейм ... Тогда да, может случиться конфуз.
Кажется, это то, чего я опасался в Фреймах.
К сожалению, нет возможности проверить, пожалуйста, прокомментируйте пример:
У меня есть базовый фрейм и несколько наследников, причем в задачу входит частое редактирование базового фрейма(удаление-добавление контролов).

А следить за фреймами-наследниками - это обязанность программиста, и среда разработки никак не облегчает этот процесс?
...
Рейтинг: 0 / 0
06.05.2019, 16:27
    #39810299
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1st А следить за фреймами-наследниками - это обязанность программиста, и среда разработки никак не облегчает этот процесс?

Насколько я помню, как только ты "тронешь" (изменишь) хоть один унаследованный контрол на наследнике, то дальшейшая его судьба будет целиком в твоих руках. Т.е. он будет хранить свои параметры уже в наследнике.

Но это не точно.
...
Рейтинг: 0 / 0
06.05.2019, 16:29
    #39810301
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1stУ меня есть базовый фрейм и несколько наследников, причем в задачу входит частое редактирование базового фрейма(удаление-добавление контролов).


Возможно тебе стоит вместо базового фрейма разместить эти (часто редактируемые) контролы на форме, а на фреймы вынести только индивидуальные для них?..
...
Рейтинг: 0 / 0
06.05.2019, 18:26
    #39810372
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1st А какие недостатки есть у TFrame ?
У самих фреймов недостатков, в общем, нет. Есть некоторые недостатки, связанные с плохой их поддержкой в VCL и IDE. Кроме того, есть некоторые концептуальные ошибки дизайна VCL, которые проявляются в том числе при использовании фреймов.

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

Artem.1stПочему возникли сомнения, т.к. фреймы редко упоминаются. Почему забыли про эту "чудо-технологию"?
Потому что программисты на Delphi в своей массе не блещут уровнем. В результате этого они, с одной стороны, склонны выбирать решения типа "будем создавать всё в рантайме" (а в этом случае фреймы не дают преимуществ и в общем не нужны), а с другой стороны - напоровшись на какую-то проблему при использовании фреймов, вместо того, чтобы разобраться с её причинами, отказываются от их использования вообще и изобретают вместо этого аналогичный собственный кривой велосипед (как правило, те или иные извраты, связанные со встраиванием форм в другие формы).
...
Рейтинг: 0 / 0
06.05.2019, 18:56
    #39810388
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
softwarerПоэтому для беспроблемного использования фреймов нужна определённая дисциплина программирования
Спасибо за ответ.
Я понял “проблему” Фреймов, при всех своих достоинствах(скорость и простота разработки) они слишком “хрупкие” в быту, в отличие от классических визуальных контролов, которые очень трудно “сломать”
...
Рейтинг: 0 / 0
06.05.2019, 19:05
    #39810392
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Вот так и становятся экспертами.
...
Рейтинг: 0 / 0
06.05.2019, 20:42
    #39810413
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1stsoftwarerПоэтому для беспроблемного использования фреймов нужна определённая дисциплина программирования
Спасибо за ответ.
Я понял “проблему” Фреймов, при всех своих достоинствах(скорость и простота разработки) они слишком “хрупкие” в быту, в отличие от классических визуальных контролов, которые очень трудно “сломать”Ооо, как это развидеть? ))))
...
Рейтинг: 0 / 0
06.05.2019, 21:05
    #39810418
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Artem.1stони слишком “хрупкие” в быту
Как известно, северный варвар способен не только сломать свой нефритовый жезл, но и поранить при этом руки.
...
Рейтинг: 0 / 0
06.05.2019, 21:27
    #39810422
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
softwarerУ самих фреймов недостатков, в общем, нет. Есть некоторые недостатки, связанные с плохой их поддержкой в VCL и IDE. Кроме того, есть некоторые концептуальные ошибки дизайна VCL, которые проявляются в том числе при использовании фреймов.Как будто есть какие-то фреймы вне VCL и IDE - в вакууме, видимо. :)
Извините за занудство, просто глаз резануло.
...
Рейтинг: 0 / 0
06.05.2019, 22:21
    #39810435
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Например, Фреймы я не люблю, не умею их готовить и кормить их и ими.

Например, всегда возникала задача изменить какой-то "пре-фрейм" в середине иерархии. И потом эти изменения где-то принимались, а где-то нет (удалённо) Ну нах!
Мне проще dll переписать и в базу положить. И реплицировать без проблем. Тут тебе и контроль версий и вся лабуда.

Опять же, у формы, панельке есть хендл, который юзается где угодно.

_____
Так что думай.
...
Рейтинг: 0 / 0
06.05.2019, 22:32
    #39810437
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
Гаджимурадов РустамКак будто есть какие-то фреймы вне VCL и IDE - в вакууме, видимо. :)
Извините за занудство, просто глаз резануло.
Не вижу оснований для "резануло". Ну вот как объяснить... представь, что один инженер разработал хороший мотор. Другой - поставил его в плохой самолёт. И вот, этот самолёт не сказать чтобы хорошо летает. И в работе мотора даже наблюдаются определённые проблемы - связанные, например, с тем, что в некоторых режимах самолёт начинает с перебоями подавать в мотор топливо. Но это всё - не является недостатками мотора, вроде как очевидно. И когда приходишь ты и говоришь "будто есть какие-то моторы вне самолётов" - это выглядит странновато.
...
Рейтинг: 0 / 0
07.05.2019, 10:51
    #39810585
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
GatorНапример, всегда возникала задача изменить какой-то "пре-фрейм" в середине иерархии. И потом эти изменения где-то принимались, а где-то нет (удалённо) Ну нах! То ли не по-русски написано, то ли я чего-то не понимаю. Что значит "не принимались"?
GatorМне проще dll переписать и в базу положить. И реплицировать без проблем. Тут тебе и контроль версий и вся лабуда. Как эти все слова связаны с фреймами??? здесь лицо джекичана..
...
Рейтинг: 0 / 0
07.05.2019, 11:22
    #39810601
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
DimonkaТо ли не по-русски написано, то ли я чего-то не понимаю. Что значит "не принимались"?
Если фрейм на форму вставлен в дизайн-тайм, то, при изменении его предка, на этой форме изменения не отображаются, потому что она уже сама хранит параметры этих контролов.
...
Рейтинг: 0 / 0
07.05.2019, 11:25
    #39810602
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
alekcvpЕсли фрейм на форму вставлен в дизайн-тайм, то, при изменении его предка, на этой форме изменения не отображаются, потому что она уже сама хранит параметры этих контролов.
Это неверное утверждение. "Изменения не отображаются" только для тех свойств, которые изменены в наследнике - как и при любом наследовании.
...
Рейтинг: 0 / 0
07.05.2019, 11:55
    #39810611
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
softwareralekcvpЕсли фрейм на форму вставлен в дизайн-тайм, то, при изменении его предка, на этой форме изменения не отображаются, потому что она уже сама хранит параметры этих контролов.
Это неверное утверждение. "Изменения не отображаются" только для тех свойств, которые изменены в наследнике - как и при любом наследовании.
Теоретически, а на практике в старых версиях там был глюк на глюке, я вон выше писал про наследование.
...
Рейтинг: 0 / 0
07.05.2019, 12:03
    #39810616
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
alekcvpТеоретически, а на практике в старых версиях там был глюк на глюке, я вон выше писал про наследование. Может быть в очень-очень старых. В Delphi 7/2009/XE2/XE4 я что-то такого не сильно припоминаю.
...
Рейтинг: 0 / 0
07.05.2019, 12:10
    #39810621
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
компонент TFrame. У кого есть опыт использования?
alekcvpТеоретически,
И практически тоже.

alekcvpа на практике в старых версиях там был глюк на глюке
Думаю, Delphi 5 - достаточно старая, но никаких "глюк на глюке" там не было, всё отлично работало.

alekcvpя вон выше писал про наследование
Могу лишь пожать плечами. Лично у меня довольно много претензий к функционированию относительно современных версий дельфы. Что же касается старых, по шестёрку включительно - в каждой ситуации, когда она вела себя "не так" я в итоге находил, что причина в ошибке в моих компонентах или другом дизайн-таймовом коде. С семёрки всё начало портиться.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / компонент TFrame. У кого есть опыт использования? / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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