Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 компонент TFrame. У кого есть опыт использования?  [new]
Artem.1st
Member

Откуда:
Сообщений: 78
Добрый день, уважаемые delphi-гуру

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

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

Почему возникли сомнения, т.к. фреймы редко упоминаются. Почему забыли про эту "чудо-технологию"?
6 май 19, 11:10    [21878516]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Dimonka
Member

Откуда:
Сообщений: 1179
Artem.1st,

Фреймы можно использовать - с ними проблем нет. Иногда проблемы появляются с некоторыми кривыми компонентами в дизайтайме на фреймах, которые во что бы то ни стало хотят быть на форме.
А так.. всё так и есть как ты описал - проблем нет - компоненты мечты Так сказать, с добрым утром..
6 май 19, 11:40    [21878545]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 511
Artem.1st,

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

а так фреймы очень удобная штука, хоть на десктопе, хоть на мобилках
6 май 19, 11:44    [21878551]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
alekcvp
Member

Откуда:
Сообщений: 1419
В некоторых версиях дельфи постоянно начинаются глюки при попытке наследования фреймов.
Я как-то делал проект, там был базовый фрейм для формы редактирования и 3-4 его варианта под конкретные данные - как же я задолбался, когда при каждом открытии наследуемых фреймов вылетали рандомные ошибки, потому что дельфя постоянно пыталась сохранить фрейм как форму.
6 май 19, 11:54    [21878569]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Artem.1st
Member

Откуда:
Сообщений: 78
Dimonka
проблемы появляются с некоторыми кривыми компонентами в дизайтайме на фреймах, которые во что бы то ни стало хотят быть на форме.

Спасибо за ответ. Весьма полезная информация, т.к. я вспомнил, что сам писал такой компонент, который ожидает Форму в дизайнтайме :-////
6 май 19, 12:08    [21878603]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Artem.1st
Member

Откуда:
Сообщений: 78
alekcvp
В некоторых версиях дельфи постоянно начинаются глюки

Спасибо за ответ.
Пожалуйста, поясните, эти глюки повились только при переходе на другую версию Delphi ?
6 май 19, 12:11    [21878612]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Dimonka
Member

Откуда:
Сообщений: 1179
Artem.1st
alekcvp
В некоторых версиях дельфи постоянно начинаются глюки
Спасибо за ответ.
Пожалуйста, поясните, эти глюки повились только при переходе на другую версию Delphi ?
Возможно предыдущий оратор имел в виду ситуацию, когда есть какая-то иерархия фреймов, унаследованная от базового фрейма. Затем автор начинает перелопачивать базовый родительский фрейм (переименовывать/удолять компоненты, пересвязывать их как-то). Тогда да, может случиться конфуз. Но это касается любого визуального наследования в Дельфи - фреймы тут ни особо при чём. В формах те же самые проблемы.
6 май 19, 12:23    [21878655]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
alekcvp
Member

Откуда:
Сообщений: 1419
Dimonka
Тогда да, может случиться конфуз. Но это касается любого визуального наследования в Дельфи - фреймы тут ни особо при чём. В формах те же самые проблемы.

Нет, автор имеет в виду ситуацию, когда в dfm-файле унаследованного фрейма после редактирования появляются свойства вроде "position", "windowstate" и прочие от TForm. В результате чего при последующем открытии появляются ошибки вида "свойство ххх не найдено в базовом классе". Лечится ручным удалением этих свойств из DFM-файла и исправлением индентификатора object на inherited там же. Проявлялось, ЕМНИП, на DX2, в более новых версиях я с фреймами не работал.
6 май 19, 12:35    [21878679]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Artem.1st
Member

Откуда:
Сообщений: 78
Dimonka
Затем автор начинает перелопачивать базовый родительский фрейм ... Тогда да, может случиться конфуз.

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

А следить за фреймами-наследниками - это обязанность программиста, и среда разработки никак не облегчает этот процесс?
6 май 19, 13:35    [21878812]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
alekcvp
Member

Откуда:
Сообщений: 1419
Artem.1st
А следить за фреймами-наследниками - это обязанность программиста, и среда разработки никак не облегчает этот процесс?


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

Но это не точно.
6 май 19, 16:27    [21879123]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
alekcvp
Member

Откуда:
Сообщений: 1419
Artem.1st
У меня есть базовый фрейм и несколько наследников, причем в задачу входит частое редактирование базового фрейма(удаление-добавление контролов).


Возможно тебе стоит вместо базового фрейма разместить эти (часто редактируемые) контролы на форме, а на фреймы вынести только индивидуальные для них?..
6 май 19, 16:29    [21879125]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 57438
Блог
Artem.1st
А какие недостатки есть у TFrame ?

У самих фреймов недостатков, в общем, нет. Есть некоторые недостатки, связанные с плохой их поддержкой в VCL и IDE. Кроме того, есть некоторые концептуальные ошибки дизайна VCL, которые проявляются в том числе при использовании фреймов.

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

Artem.1st
Почему возникли сомнения, т.к. фреймы редко упоминаются. Почему забыли про эту "чудо-технологию"?

Потому что программисты на Delphi в своей массе не блещут уровнем. В результате этого они, с одной стороны, склонны выбирать решения типа "будем создавать всё в рантайме" (а в этом случае фреймы не дают преимуществ и в общем не нужны), а с другой стороны - напоровшись на какую-то проблему при использовании фреймов, вместо того, чтобы разобраться с её причинами, отказываются от их использования вообще и изобретают вместо этого аналогичный собственный кривой велосипед (как правило, те или иные извраты, связанные со встраиванием форм в другие формы).
6 май 19, 18:26    [21879292]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Artem.1st
Member

Откуда:
Сообщений: 78
softwarer
Поэтому для беспроблемного использования фреймов нужна определённая дисциплина программирования

Спасибо за ответ.
Я понял “проблему” Фреймов, при всех своих достоинствах(скорость и простота разработки) они слишком “хрупкие” в быту, в отличие от классических визуальных контролов, которые очень трудно “сломать”
6 май 19, 18:56    [21879316]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
ёёёёё
Member

Откуда:
Сообщений: 404
Вот так и становятся экспертами.
6 май 19, 19:05    [21879324]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 511
Artem.1st
softwarer
Поэтому для беспроблемного использования фреймов нужна определённая дисциплина программирования

Спасибо за ответ.
Я понял “проблему” Фреймов, при всех своих достоинствах(скорость и простота разработки) они слишком “хрупкие” в быту, в отличие от классических визуальных контролов, которые очень трудно “сломать”
Ооо, как это развидеть? ))))
6 май 19, 20:42    [21879376]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 57438
Блог
Artem.1st
они слишком “хрупкие” в быту

Как известно, северный варвар способен не только сломать свой нефритовый жезл, но и поранить при этом руки.
6 май 19, 21:05    [21879385]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 60007
softwarer
У самих фреймов недостатков, в общем, нет. Есть некоторые недостатки, связанные с плохой их поддержкой в VCL и IDE. Кроме того, есть некоторые концептуальные ошибки дизайна VCL, которые проявляются в том числе при использовании фреймов.
Как будто есть какие-то фреймы вне VCL и IDE - в вакууме, видимо. :)
Извините за занудство, просто глаз резануло.
6 май 19, 21:27    [21879397]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Gator
Member

Откуда: Москва
Сообщений: 14355
Например, Фреймы я не люблю, не умею их готовить и кормить их и ими.

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

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

_____
Так что думай.
6 май 19, 22:21    [21879428]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 57438
Блог
Гаджимурадов Рустам
Как будто есть какие-то фреймы вне VCL и IDE - в вакууме, видимо. :)
Извините за занудство, просто глаз резануло.

Не вижу оснований для "резануло". Ну вот как объяснить... представь, что один инженер разработал хороший мотор. Другой - поставил его в плохой самолёт. И вот, этот самолёт не сказать чтобы хорошо летает. И в работе мотора даже наблюдаются определённые проблемы - связанные, например, с тем, что в некоторых режимах самолёт начинает с перебоями подавать в мотор топливо. Но это всё - не является недостатками мотора, вроде как очевидно. И когда приходишь ты и говоришь "будто есть какие-то моторы вне самолётов" - это выглядит странновато.
6 май 19, 22:32    [21879432]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Dimonka
Member

Откуда:
Сообщений: 1179
Gator
Например, всегда возникала задача изменить какой-то "пре-фрейм" в середине иерархии. И потом эти изменения где-то принимались, а где-то нет (удалённо) Ну нах!
То ли не по-русски написано, то ли я чего-то не понимаю. Что значит "не принимались"?
Gator
Мне проще dll переписать и в базу положить. И реплицировать без проблем. Тут тебе и контроль версий и вся лабуда.
Как эти все слова связаны с фреймами??? здесь лицо джекичана..
7 май 19, 10:51    [21879693]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
alekcvp
Member

Откуда:
Сообщений: 1419
Dimonka
То ли не по-русски написано, то ли я чего-то не понимаю. Что значит "не принимались"?
Если фрейм на форму вставлен в дизайн-тайм, то, при изменении его предка, на этой форме изменения не отображаются, потому что она уже сама хранит параметры этих контролов.
7 май 19, 11:22    [21879715]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 57438
Блог
alekcvp
Если фрейм на форму вставлен в дизайн-тайм, то, при изменении его предка, на этой форме изменения не отображаются, потому что она уже сама хранит параметры этих контролов.

Это неверное утверждение. "Изменения не отображаются" только для тех свойств, которые изменены в наследнике - как и при любом наследовании.
7 май 19, 11:25    [21879717]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
alekcvp
Member

Откуда:
Сообщений: 1419
softwarer
alekcvp
Если фрейм на форму вставлен в дизайн-тайм, то, при изменении его предка, на этой форме изменения не отображаются, потому что она уже сама хранит параметры этих контролов.

Это неверное утверждение. "Изменения не отображаются" только для тех свойств, которые изменены в наследнике - как и при любом наследовании.

Теоретически, а на практике в старых версиях там был глюк на глюке, я вон выше писал про наследование.
7 май 19, 11:55    [21879744]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
Dimonka
Member

Откуда:
Сообщений: 1179
alekcvp
Теоретически, а на практике в старых версиях там был глюк на глюке, я вон выше писал про наследование.
Может быть в очень-очень старых. В Delphi 7/2009/XE2/XE4 я что-то такого не сильно припоминаю.
7 май 19, 12:03    [21879757]     Ответить | Цитировать Сообщить модератору
 Re: компонент TFrame. У кого есть опыт использования?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 57438
Блог
alekcvp
Теоретически,

И практически тоже.

alekcvp
а на практике в старых версиях там был глюк на глюке

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

alekcvp
я вон выше писал про наследование

Могу лишь пожать плечами. Лично у меня довольно много претензий к функционированию относительно современных версий дельфы. Что же касается старых, по шестёрку включительно - в каждой ситуации, когда она вела себя "не так" я в итоге находил, что причина в ошибке в моих компонентах или другом дизайн-таймовом коде. С семёрки всё начало портиться.
7 май 19, 12:10    [21879773]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить