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

Вниз

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

 
френк   (2005-11-24 17:27) [0]

Есть сложность - при изменении размеров / позиции компонента TImage в run-time происходит очень сильное мерцание. Как можно справиться? неужели нет выхода :(


 
jack128 ©   (2005-11-24 17:53) [1]

Image1.Parent.DoubleBuffered := True;


 
френк   (2005-11-24 18:15) [2]

огромное спасибо ) напрашивается, возможно, дуратский вопрос. задавать в run-time множеству панелей DoubleBuffered:=True выглядит как-то странно. но возникла проблема - в случае если я в конструкторе моей обертки для TImage попробую задать это свойство у парента - получаем AV. даже если ограничить области применение чисто run-time"ом:

constructor TALImagePanel.Create(AOwner: TComponent);
begin
inherited;
FSkinEngine:=nil;
//--
if not (csDesigning in ComponentState) then
 Self.Parent.DoubleBuffered:=True;
//--
end;


 
френк   (2005-11-24 18:22) [3]

я так понял что не все наследники TWinControl поддерживают такую фичу. можно ли определить, поддерживается ли двойная буферизация компонентом-родителем или у меня АВ вылетает по другой причине? ) причину пытаюсь локализовать, пока безуспешно :*(


 
Leonid Troyanovsky ©   (2005-11-24 18:35) [4]


> френк   (24.11.05 18:22) [3]

> по другой причине? ) причину пытаюсь локализовать, пока
> безуспешно :*(


Во время создания контрола у него еще нет парента.
Поэтому, такие вещи могут пройти лишь после приобретения оного.
Например, в procedure SetParent; override;

--
Regards, LVT.


 
френк   (2005-11-24 18:37) [5]

прошу прощение что "рожаю" посты, просто нету возможности редактировать предыдущие (

понял, что каким то образом в результате установа флага DoubleBuffered (а по другому тут никак не назовешь) у родителя - возникает процесс умервщления (вызов метода Destroy) у моего только начавшего свое создание компонента. В результате ошибка при чтении памяти или некорректная работа с указателем -> AV. Где же тогда устанавливать сей флаг, если я хочу автоматизировать процесс?


 
френк   (2005-11-24 18:40) [6]

Leonid Troyanovsky ©   (24.11.05 18:35) [4]
огромное спасибо "отцу" ) буду разбираться. спасибо!


 
френк   (2005-11-24 18:45) [7]

и снова имеем AV :(

procedure TALImagePanel.SetParent(AParent: TWinControl);
begin
inherited;
//--
if not (csDesigning in ComponentState) then
 AParent.DoubleBuffered:=True;
end;

вроде парент есть :(


 
GuAV ©   (2005-11-24 18:49) [8]

френк   (24.11.05 18:45) [7]

А если добавить
if AParent <> nil then


 
френк   (2005-11-24 19:00) [9]

пробовал. все равно вываливается на AV. при вызове DubleBuffered->True, уходит на уничтожение TALImagePanel, как я и говорил =( протрассировать момент после DoubleBuffered->True не получается =(


 
OldNaum ©   (2005-11-24 19:44) [10]

все, прошу прощение. вываливалось в случае, если парентом была форма почему-то. пытаюсь сейчас себе объяснить "почему?" :)



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

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

Наверх





Память: 0.47 MB
Время: 0.019 c
14-1133248465
dr D
2005-11-29 10:14
2005.12.18
Что-то вы тут завели: политика, политика ...


14-1132939236
EXEcuTTeR
2005-11-25 20:20
2005.12.18
plug-in для WinAMP


1-1132738006
BURN
2005-11-23 12:26
2005.12.18
Excel ==> DB


2-1133273255
бедный студент
2005-11-29 17:07
2005.12.18
шаг цикла


14-1132914608
*Pavel
2005-11-25 13:30
2005.12.18
Штрихкоды и русские буквы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский