Въпрос # 488 …e свойство DoubleBuffered С уважение, Авдошин Алексей Виталиевич… (Работа с
Общност от програмисти Комуникация, помощ, обмяна на опит
Delphi.int.ru експерт
Други раздели на портала
Преминете към въпроса:
Статистика за днес:
Топ Експерти
Въпрос #488
Здравейте скъпи експерти! Как да зададете свойството DoubleBuffered на Timage
С уважение, Авдошин Алексей Виталиевич
Отговор №1. Експертните отговори:Dron
Здравейте. Само формулярът има свойството DoubleBuffered (Boolean). Всички останали компоненти го нямат. Прилага се автоматично към всичко, което принадлежи към този формуляр. Следователно трябва да се запише така: Form1.DoubleBuffered:=True; И това е достатъчно да направите само веднъж - като правило, в началото на програмата, т.е. на събитието OnCreate() на формуляра. Свойството наистина премахва трептенето по време на анимация. Макар и не напълно, но резултатът е много забележим. Успех!
Отговор №2. Експертни отговори:min@y™
Свойството DoubleBuffered е достъпно не само за формата, но и за всички класове, наследени от TWinControl. Ако TImage лежи, например, на TPanel, тогава можете да зададете Panel.DoubleBuffered:= True;
В приложението оставям функцията за настройка на свойството DoubleBuffered на всички компоненти на прозореца, лежащи върху родителския компонент, включително самия него.
- процедура SetDoubleBuffered(Parent: TWinControl; const DoubleBuffered: Boolean);
- вар
- Управление: TControl;
- Индекс: Цяло число;
- започвам
- ако не е назначен (родител)
- след това Изход;
- Parent.DoubleBuffered:=DoubleBuffered;
- за Index:=0 до Parent.ControlCount-1 направи
- започвам
- Control:=Parent.Controls[Индекс];
- акоУправлението е TWinControl
- край;
- край;
Въпрос мини-форум
Не правя анимация, просто плъзгам компонента с мишката.Когато компонентът се движи по формата, остава следа от картината (в случая на Form1.DoubleBuffered:=True
хм Но като цяло не е необходимо това свойство да се включва ненужно. Не е за тези цели. Плъзгането на компоненти трябва да работи добре. Може би проблемът е в кода за плъзгане и пускане?