Delphi 6: Определить, когда форма полностью нарисована? - PullRequest
1 голос
/ 14 октября 2010

Существует ли простой и удобный способ узнать, когда все компоненты, рамки и дочерние элементы управления в TForm полностью окрашены?Я в основном ищу эквивалент события onload (), найденного на веб-страницах, но в контексте форм Delphi.Предпочтительно этот метод все еще будет работать, даже если некоторые элементы формы в настоящее время не видны, а также он будет запускаться снова после изменения размера формы.У меня происходит "колебание" некоторых элементов формы, так как различные элементы формы автоматически настраивают их размер, и я хотел бы отключить перекрашивание, пока все не будет сделано, чтобы получить более чистый вид.

Ответы [ 2 ]

0 голосов
/ 25 марта 2011

Взгляните на свойство DoubleBuffered:

Определяет, является ли изображение элемента управления отображается непосредственно в окне или сначала окрашивается в растровое изображение в памяти. Синтаксис Delphi: свойство DoubleBuffered: логическое значение; Описание Когда DoubleBuffered имеет значение false, оконный контроль рисует сам прямо к окну. когда DoubleBuffered - это правда, оконный управление рисует себя в памяти растровое изображение, которое затем используется для рисования окно. Двойная буферизация уменьшает количество мерцания при контроле перекрашивает, но больше памяти интенсивный. Когда оконный элемент управления сайт дока и имеет связанный док менеджер, он должен быть в двойной буферизации. Примечание. Некоторые элементы управления, такие как TRichEdit, не могу нарисовать себя в растровое изображение. Для таких элементов управления, Для DoubleBuffered должно быть установлено значение false.

0 голосов
/ 25 марта 2011

В элементах управления Delphi есть процедуры BeginUpdate и EndUpdate. Когда я занимался программированием на Delphi - прошло много времени - мы хотели бы загрузить сетку, которая занимала много данных, мы вызывали BeginUpdate до загрузки, а затем EndUpdate после ее окончания. Это указывало элементу управления на прекращение приема сообщений (т.е. прокрутку при загрузке новых записей) и ожидание обновления за один раз - заставляя все «выглядеть» быстрее. Возможно, вы сможете установить элементы управления в режим BeginUpdate, пока не закончится перекраска, а затем EndUpdate, чтобы синхронизировать все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...