Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

Мерцание компонент   Найти похожие ветки 

 
Кодер ©   (2005-01-04 20:29) [0]

У меня две проблемы, которые сводятся к одному:

Проблема 1. При перемещении компонент TPanel, TLabel и прочих по форме, они начинают мерцать.
Проблема 2. При изменении размера формы (при выполнении приложения естественно), компоненты (TPanel, TLabel и прочие) на форме тоже соответственно меняют свои размеры и при этом они начинают мерцать.
Много чего попробовал, но эффект не изменился.


 
P.N.P. ©   (2005-01-04 20:36) [1]

TForm.DoubleBuffered:=true
не пробовал?


 
olookin ©   (2005-01-04 20:54) [2]

Насчет ПРОБЛМЕА 1 - как и сказал P.N.P, DoubleBuffered

Насчет ПРОБЛЕМА 2 - сомнительно как-то, почему так...


 
Кодер ©   (2005-01-04 21:08) [3]


> olookin

сам удивляюсь, но факт есть факт


 
olookin ©   (2005-01-04 21:09) [4]

[3] Кодер ©   (04.01.05 21:08)

Может на OnResize срабатывает что?


 
Кодер ©   (2005-01-04 21:35) [5]

DoubleBuffered:= TRUE помогает, но тогда возникают еще два вопроса:
1. Это единственный способ?
2. Ситуация - Label1: TLable находится прямо на форме, также на форме есть Panel1: TPanel, а на панеле находится еще один  Label2: TLabel, так вот необходимо ставить Form1.DoubleBuffered:= TRUE и Panel1.DoubleBuffered:= TRUE, незя как-нить это одной строкой описать? то бишь покороче?


 
Кодер ©   (2005-01-04 21:36) [6]


> olookin

в обработчике OnResize происзодит просто перерасчет размеров объектов и больше ничего


 
olookin ©   (2005-01-04 21:55) [7]

[6] Кодер ©   (04.01.05 21:36)
Для проблемы 1 DoubleBuffered - единственный (как мне кажется) способ, за исключением переписи компонента.

в обработчике OnResize происзодит просто перерасчет размеров объектов и больше ничего

А что под этим имеется в виду?


 
Кодер ©   (2005-01-04 21:58) [8]


> olookin

ну к примеру высчитывается положения того же самого Label1

Label1: TLable находится прямо на форме, также на форме есть Panel1: TPanel, а на панеле находится еще один  Label2: TLabel, так вот необходимо ставить Form1.DoubleBuffered:= TRUE и Panel1.DoubleBuffered:= TRUE, незя как-нить это одной строкой описать? то бишь покороче?

А как это избежать?


 
olookin ©   (2005-01-04 22:06) [9]

[8] Кодер ©   (04.01.05 21:58)

Не понимаю я твоей проблемы...


 
Кодер ©   (2005-01-05 00:34) [10]


> olookin

Объясняю:
если изменить свойство Form.DoubleBuffered:=true, то оно будет распространяться только на объекты, которые располагаются непосредственно на форме, а если объект, который мерцает :-) располагается на панеле, а панель уже на форме, то на объект, располагающийся на панеле свойство Form.DoubleBuffered:=true уже не действует! т.е. это свойство действует напосредственно только на своих прямых потомков!


 
olookin ©   (2005-01-05 01:10) [11]

[10] Кодер ©   (05.01.05 00:34)

А разве а TPanel нет DoubleBuffered? Мне казалось, что есть...


 
Кодер ©   (2005-01-05 15:26) [12]

Да есть конечно же!!! Но если таких панелей на форме 2, 3, ...10??? То придется ДЛЯ КАЖДОЙ панели указывать DoubleBuffered:= TRUE! Вот в этом и заключается мой вопрос - незя ли как-нить ОДНОЙ командой выставить это свойство у ВСЕХ объектов формы?


 
KSergey ©   (2005-01-05 15:32) [13]

> [12] Кодер ©   (05.01.05 15:26)
> 3, ...10??? То придется ДЛЯ КАЖДОЙ панели указывать DoubleBuffered:=
> TRUE! Вот в этом и заключается мой вопрос - незя ли как-нить
> ОДНОЙ командой выставить это свойство у ВСЕХ объектов формы?

Одной строчкой - нет. Ну если не вытягивать все в одну строку, конечно.


 
Кодер ©   (2005-01-05 15:34) [14]

:-)
Жаль...


 
ssk ©   (2005-01-05 15:38) [15]

>Кодер

как вариант (возможно не лучший), прогони в цикле все панели да и выстави нужные свойства


 
olookin ©   (2005-01-05 17:11) [16]

Так действительно в цикле

for i:=0 to Application.ComponentCount-1 do //это количество форм
 for j:=0 to Application.Components[i].ComponentCount-1 do // это как я полагаю, количество контролов на i-й форме
   if Application.Components[i].Components[j] is TPanel then //а это сам комопнент...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1105107600
Макс
2005-01-07 17:20
2005.01.23
помогите написать программу


1-1105464482
Magic_STI
2005-01-11 20:28
2005.01.23
Вывод ресалтов поиска


14-1104471184
Grinders
2004-12-31 08:33
2005.01.23
Новый Год!


10-1081131338
niko4543
2004-04-05 06:15
2005.01.23
Word.


1-1105529226
Garry
2005-01-12 14:27
2005.01.23
как в DbGrid можно...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский