Сегодня столкнулся с каким-то непонятным и, пока, не постижимым для меня поведением TWebBrowser на форме приложения. Думал, что чего-то сам напортачил в проекте и из-за этого происходят какие-то глюки – проверил. Всё в норме – TWebBroser продолжает странно себя вести даже в новом проекте.
Для воспроизведения ошибки можно сделать следующее: создаем новый проект Delphi, кидаем на главную форму TWebBrowser, свойство Align устанавливаем в alBottom. Теперь запускаем приложение при этом даже не обязательно загружать в WebBrowser что-либо и начинаем менять размер окна.
При определенном сочетании значений Height и Width у главной формы WebBrowser пропадает с формы. При этом сам экземпляр TWebBrowser существует, свойство Visible остается в True, но сам WebBrowser никак не реагирует на изменение его свойств, Repaint’ы и т.д.
Теперь возвращаем браузер обратно – снова меняем размеры окна, но только в противоположную сторону. Опять же в какой-то момент на форму вываливается WebBrowser как чёрт из табакерки :)
Но и это оказалось ещё не все. При других значениях свойства Align у WebBrowser этот странный глюк не воспроизводится. Пробовал вертеть компонент на форме и так и сяк – только на alBottom начинаются проблемы.
Пока слушал онлайн радио, и разбирался с хитросплетениями работы TWebBrowser на форме нашел довольно элементарный костыль для решения проблемы. Если надо, чтобы WebBrowser был alBottom и не пропадал с формы – разместите его на панели (TPanel) и браузер перестанет пропадать.
Пока пробую разобраться с причиной возникновения проблемы, решил использовать “костыль”.
Может кто-нибудь уже сталкивался с такой проблемой? И, если сталкивались, то есть ли какие-нибудь идей почему так происходит?
Книжная полка
Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
|
||
Название: О чем не пишут в книгах по Delphi
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
|
все так же)), но в Delphi 7 все норм. подобный глюк и с флеш плеером.
есть некоторое подозрение, что раз уж свойство visible осается true, разрмеры длина\ширина не нулевые, а браузера не видно, то при выравнивании компонента с использованием align ошибочно выставляется позиция top/left унося его куда то за пределы формы.
А подскажите, пожалуйста, как Вы меняете размер формы для устройства, это происходит в дизайнере или на девайсе/на симуляторе?
Если можно — прикрепите сампл с багой.
Nikolay, Вы, видимо тоже из Embarcadero? Если да, то Ярославу мой пламенный привет :) Проясним ситуацию: дата этого поста 5 апреля, 2011 и баг из статьи, соответственно, имеет место быть исключительно в vcl (ну по крайней мере пару лет назад баг был). Что касается того, что ссылочка на этот пост засветилась в этом посте про iOS, то здесь все просто — это работа плагина WordPress, который сравнивает заголовки всех постов блога с текущим и подбирает наиболее похожие.