Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Быстро обновить все визуальные компонент


Автор: Grol 26.2.2006, 05:08
Вот такой вопрос: На форме есть много всяких различных компонентов, необходимо одним махом их обновить, т.е. сделать всем Refresh.
Вот допустим куча Button'ov и Image'ей. Делаю так:
Код

procedure TForm1.spSkinButton1Click(Sender: TObject);
begin

Image1.Refresh;
Image2.Refresh;
Image3.Refresh;
Image4.Refresh;
...
ImageN.Refresh;

Button1.Refresh;
Button2.Refresh;
Button3.Refresh;
Button4.Refresh;
...
ButtonN.Refresh;
end;

Но это же наверно не правильно, вызывать одну и туже процедуру много раз, к тому же неудобно и много строчек...smile
Вообщем как можно обновить все компоненты одним махом, в том числе и форму?

Автор: z-END 26.2.2006, 10:22
Self.Repaint не помогает?

Автор: Yanis 26.2.2006, 10:39
Может быть InvalidateRect тебе поможет.
Добавлено @ 10:40
а точнее так:
Код

InvalidateRect(Handle, nil, True);

Добавлено @ 10:40
Цитата(Grol @ 26.2.2006, 05:08 Найти цитируемый пост)
Вообщем как можно обновить все компоненты одним махом, в том числе и форму?

А разве компоненты на форме не обновляются, если обновить форму?

Автор: Poseidon 26.2.2006, 12:12
Код
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to ControlCount-1 do controls[i].Refresh;
Refresh;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)