powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Непонятные проблемы с фреймами
19 сообщений из 19, страница 1 из 1
Непонятные проблемы с фреймами
    #39929972
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы разгрузить модуль главной формы решил раскидать кое-какие интерфейсные элементы по фреймам. Перекидывал просто копи-пастой.

Проблема первая. После размещения фрейма в контейнере на главной форме, события у некоторых элементов не отрабатываются. У некоторых срабатывают, у некоторых нет. Долго не мог понять что не так, зависимости не нашел. Сделал простую вещь - в модуле фрейма пересоздал (в дизайн-тайме) проблемные компоненты. Всё заработало. Что это такое и почему?

Проблема вторая. На одном из фреймов лежит листбокс от девок TcxListBox. В нем соотв. некий TStrings, забитый в дизайн-тайме. Все хорошо компилится и работает. Закрываем Дельфу, открываем - TStrings пустой, итить его! (30 строк забиваем вручную заново)

Что я делаю не так?

P.S. кто ассоциирует себя с праздником (23.02), поздравляю.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930024
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99> Чтобы разгрузить модуль главной формы решил раскидать
Gluck99> кое-какие интерфейсные элементы по фреймам.

Фреймы придуманы не для этого...

Gluck99> После размещения фрейма в контейнере на главной форме,
Gluck99> события у некоторых элементов не отрабатываются.
Gluck99> У некоторых срабатывают, у некоторых нет.

Воспроизводится? Попробуйте переприсвоить (и сохранить) обработчики.

Gluck99> TStrings, забитый в дизайн-тайме.

Это странно. Свойство забито у фрейма или у конкретного экземпляра на форме?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930031
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99
роблема первая. После размещения фрейма в контейнере на главной форме, события у некоторых элементов не отрабатываются. У некоторых срабатывают, у некоторых нет. Долго не мог понять что не так, зависимости не нашел. Сделал простую вещь - в модуле фрейма пересоздал (в дизайн-тайме) проблемные компоненты. Всё заработало. Что это такое и почему?


Посмотри в dfm контейнера: возможно, соотв. свойства стали nil, если да - то такие строки в dfm надо убрать.

Где-то сам испортил, скорее всего.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930033
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё> в dfm контейнера: возможно, соотв. свойства стали nil,
ёёёёё> если да - то такие строки в dfm надо убрать.

А просто переприсвоение с сохранением не работает ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930035
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
ёёёёё> в dfm контейнера: возможно, соотв. свойства стали nil,
ёёёёё> если да - то такие строки в dfm надо убрать.

А просто переприсвоение с сохранением не работает ?

Работает, обычно.
Зависит в т.ч. от версии Delphi.

На некоторых было вообще забавно: меняешь обработчик OnClick (например) на свой - ОК. Потом убираешь свой обработчик, а в dfm контейнера появляется строка: ContainerXXFrameYY.OnClick = nil - и всё, никакого обработчика, а к исходному теперь можно достучаться только явным вызовом или правкой dfm.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930094
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Gluck99> Чтобы разгрузить модуль главной формы решил раскидать
Фреймы придуманы не для этого...
Oops, а для чего? Для множественного доступа к группе компонентов без лишней траты ресурсов? Я это знаю. Предлагаю рассматривать мой пример как частный случай.
Гаджимурадов Рустам

Воспроизводится? Попробуйте переприсвоить (и сохранить) обработчики.
Это первое, что я сделал. Воспроизводилось много раз с разными фреймами. В итоге плюнул и пересоздавал проблемные компоненты.
Гаджимурадов Рустам
Это странно. Свойство забито у фрейма или у конкретного экземпляра на форме?
У фрейма, в модуле. Причем воспроизводимость тоже имеется. В количестве двух раз. Первый раз я действительно подумал, что удалил случайно (хотя такое бывало... э-э-э... никогда). Но когда это же самое произошло во второй раз, я удивился. Сейчас вот внимательно наблюдаю за этим листбоксом - пока два раза проект открылся нормально. Т.е. глюк плавающий. Гипотеза такая - возможно это как-то связано с последовательностью создания фреймов/форм в дизайн-тайме, т.е. какой-то баг IDE.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930117
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
Где-то сам испортил, скорее всего.
А вот ничего подобного. Я свою гипотезу проверил - она подтвердилась.

Открываем проект. У нас несколько вкладок - главная форма + другие формы + фреймы + дата модуль. Закрываем Дельфу. Если на момент закрытия у нас была активна любая вкладка, кроме вкладки главной формы, то всё Ок. При последующем открытии проекта TStrings в листбоксе заполнен. Но если в момент закрытия Дельфы у нас была активна вкладка главной формы (где уже сидит экземпляр фрейма), то после открытия проекта у нас, соотв., активной становится вкладка главной формы, мы переходим на вкладку фрейма и... вуаля - TStrings у листбокса пустой. Delphi 10.3 update 2.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930220
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99Я свою гипотезу проверил - она подтвердилась. Delphi 10.3 update 2.

Открываем проект. У нас несколько вкладок - главная форма + другие формы + фреймы + дата модуль. Закрываем Дельфу. Если на момент закрытия у нас была активна любая вкладка, кроме вкладки главной формы, то всё Ок. При последующем открытии проекта TStrings в листбоксе заполнен. Но если в момент закрытия Дельфы у нас была активна вкладка главной формы (где уже сидит экземпляр фрейма), то после открытия проекта у нас, соотв., активной становится вкладка главной формы, мы переходим на вкладку фрейма и... вуаля - TStrings у листбокса пустой.
Оформляйте баг и отправляйте EMBT - пусть правят.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930222
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr, но удобно же - не плодить код и формы.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930224
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Оформляйте баг и отправляйте EMBT - пусть правят.

Готов предсказать что они ответят - "претензии к левым компонентам отправляйте авторам компонент". И не исключено, что будут правы.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930226
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы услышать владельцев Delphi 10.3 update 2.
Могут ли они воспроизвести сей глюк ?
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930228
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer> "претензии к левым компонентам отправляйте авторам компонент"
softwarer> И не исключено, что будут правы.

Кстати, да, нужно проверить воспроизводится
ли это со стандартным Listbox-ом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930230
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99
Этот тезис советую отправить в Борланд, который ввел фреймы в Дельфи ~20 лет назад.
Отправь, если интересно.

Но не использовтаь фреймы все равно соотвествует здравому смыслу. Уж больно криво-косячный это инструмент.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930238
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Отправь, если интересно.
Но не использовтаь фреймы все равно соотвествует здравому смыслу. Уж больно криво-косячный это инструмент.
Отправлять не буду, пусть автор тезиса отправляет.
Возможно использование фреймов и не имеет смысла, но автор не потрудился объяснить почему. Теперь я тоже начинаю подозревать, что это криво-косячный инструмент. Взяться за фреймы я решил после того, как увидел много разных демок от разных контор с использованием фреймов. Раньше использование фреймов в таком количестве не встречал. Т.е. я воспринял это как некий тренд последних лет. "По телевизору показывают жуликов - ну чем я хуже?!"
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930241
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99> увидел много разных демок от разных контор с использованием фреймов.

Демок чего? Как раз для демок фреймы могут и сгодиться. :)

Gluck99> "По телевизору показывают жуликов - ну чем я хуже?!"

Тебя посодют - а ты не воруй! (с) Их-то не посодют,
и даже если посодют рядом - тебе легче не станет.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930247
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Кстати, да, нужно проверить воспроизводится
ли это со стандартным Listbox-ом.
Я сделал чистый проект, ни со стандартным листбоксом, ни с девовским проблема пока не воспроизводится :(
Но что дополнительно обнаружилось на том проекте, где проблема.
Если открыть проект где по умолчанию была активна главная форма, а затем перейти на вкладку с фреймом (где пустой листбокс), потом закрыть проект с активной вкладкой фрейма без сохранения проекта, то при последующем открытии проекта листбокс будет заполнен. Т.е. TStrings есть, но не подгружается при открытии проекта, если активна вкладка главной формы. Причём проблема в реальном проекте воспроизводится и со стандартным ListBox'ом, который я положил рядом с девовским, т.е. оба бокса пустые при открытии.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930250
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Gluck99> увидел много разных демок от разных контор с использованием фреймов.
Демок чего? Как раз для демок фреймы могут и сгодиться. :)
Да разного. Из того что сразу вспомнилось - что-то из демок DevArt'a, по-моему. Хочется-то задействовать хорошие современные практики, чтобы "стильно, модно, молодёжно". А где их брать, как не подглядывая в код уважаемых компаний? :)
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930251
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99
Причём проблема в реальном проекте воспроизводится и со стандартным ListBox'ом

Раз так, то теперь убираешь из этого проекта всё лишнее, следя за тем, чтобы проблема продолжала воспроизводиться. И когда получится маленький-простой проект на стандартных компонентах, пишешь багрепорт и прикладываешь его, шансы на успех достаточно высоки.

Gluck99
Теперь я тоже начинаю подозревать, что это криво-косячный инструмент

Фреймы - толковый инструмент, не без недостатков, но вполне приличный. Вопрос в том, что на фреймах, как и на наследуемых формах, любят вылезать косяки компонент и прочих использованных решений, в результате чего некоторые торопливые разработчики считают их косяками фреймов. Это вообще довольно частый сценарий в разных областях. Для примера, делал я однажды хранилище данных в Сибуре, и в нём, что вполне естественно, вылезали все косяки учётной системы - ну например, расползающие остатки, на которые в самой учётной системе никто не обращал внимания. И что, как Вы думаете, хоть один человек об этом думал? Нет, первая фраза, которую все говорили - что за кривое хранилище, какую хрень оно показывает, исправляйте. Пришлось несколько десятков раз тыкать разных людей носом в то, что это косяки их данных, прежде чем они начали немного думать головой.
...
Рейтинг: 0 / 0
Непонятные проблемы с фреймами
    #39930324
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99> Я сделал чистый проект, ни со стандартным листбоксом,
Gluck99> ни с девовским проблема пока не воспроизводится :(
Gluck99> ...
Gluck99> Если открыть проект где по умолчанию была активна главная
Gluck99> форма, а затем ..., потом закрыть проект ..., то при последующем
Gluck99> открытии проекта листбокс будет заполнен.

Как уже подсказали выше: если не можешь сделать воспроизводимый
пример с нуля - делай его от обратного, выкидыванием из проекта и из
формы всего лишнего/ненужного (все незадействованные компоненты,
включая формы, весь ненужный код и т.д.). Хотя вполне возможно, что
найдёшь косяк в конкретных действиях, а не самом инструменте.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Непонятные проблемы с фреймами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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