|
Вопрос # 488/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Как установить у Timage свойство DoubleBuffered
С уважением, Авдошин Алексей Витальевич
 |
Вопрос задал: Авдошин Алексей Витальевич (статус: Посетитель)
Вопрос отправлен: 16 апреля 2007, 18:34
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Dron
Здравствуйте.
Свойство DoubleBuffered (Boolean) есть только у формы. У всех остальных компонент его нет. Оно автоматически применяется ко всему, что этой форме принадлежит. Поэтому следует написать так:
Form1.DoubleBuffered:=True;
И сделать это достаточно всего один раз - как правило, при запуске программы, т.е. на событии OnCreate() формы. Свойство действительно убирает мерцание при анимации. Пусть и не полностью, но результат очень заметен.
Желаю удачи!
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 16 апреля 2007, 19:01
|
Ответ #2. Отвечает эксперт: min@y™
Свойство DoubleBuffered есть не только у формы, а у всех классов, наследованных от TWinControl. Если TImage лежит, к примеру, на TPanel, то можно поставить Panel.DoubleBuffered:= True;
В приложении оставляю функцию установки свойства DoubleBuffered всех оконных компонентов, лежащих на компонентое Parent, включая его самого.
Приложение: Переключить в обычный режим- procedure SetDoubleBuffered(Parent: TWinControl; const DoubleBuffered: Boolean);
- var
- Control: TControl;
- Index: Integer;
- begin
- if not Assigned(Parent)
- then Exit;
- Parent.DoubleBuffered:=DoubleBuffered;
- for Index:=0 to Parent.ControlCount-1 do
- begin
- Control:=Parent.Controls[Index];
- if Control is TWinControl
-
- end;
- end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 17 апреля 2007, 08:21
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 16 апреля 2007, 19:34; участников в обсуждении: 2.
|
Авдошин Алексей Витальевич (статус: Посетитель), 16 апреля 2007, 19:11 [#1]:
Я не занимаюсь анимацией, я просто таскаю компонент за мышью.При движении компонента по форме остается след от рисунка(в случае Form1.DoubleBuffered:=True
|
|
Dron (статус: Студент), 16 апреля 2007, 19:34 [#2]:
Хм. Но вообще-то без необходимости включать это свойство не нужно... Оно не для этих целей. Перетаскивание компонент должно нормально осуществляться. Может проблема в коде перетаскивания?
С уважением.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|