如何能让我的形式调整更顺利吗?
题
当调整的一种形式与许多控制,形式上看起来糟糕,因为闪烁。什么是一些提示有一个更光滑的形式调整大小?
解决方案
procedure TForm1.WMEnterSizeMove(var Message:TWMMove);
begin
Self.DisableAlign;
end;
procedure TForm1.WMExitSizeMove(var Message:TWMMove);
begin
Self.EnableAlign;
end;
其他提示
尝试使用WM_SETREDRAW(的不强> LockWindowUpdate )。
您也可以看看 DeferWindowPos 一>
复杂的形式往往是由嵌板,和重新绘制过程可能会导致闪烁。如果是这种情况下,与项目有两个简单的解决方案, 可能会 帮助:
- 禁酒店
FullRepaint
在你的面板。 - 启用的财产
DoubleBuffered
关于您的形式。你不会找到这个酒店对象的检查,所以把DoubleBuffered := true;
在FormCreate.
我这周围如下:
- 在OnResize'事件的形式,有一个程序隐藏的所有儿童的控制,然后再启动计时器有一个勾约500毫秒.
- 计时器火,禁止它,然后设置的所有儿童的控制可见。
通过玩弄这种活动获得的一种形式,一片空白,而你是大小,但后来填充本身的整整齐齐的时候你让我们去'。
Bri
予避免闪烁通过对准不超过的 1 强>非alClient
每父组件,总是以alClient
配对(例如TPanel
)更包含所有其它组件。他们组板无国界。
假设你想allign三件事情:alLeft
,alTop
和alClient
主视图。
不这样做:
Form
alTop
alLeft
alClient // your main view
但是,代替嵌入这些如下:
Form
alTop
alClient // panel to avoid flicker
alLeft
alClient // your main view
同样的故事用于嵌入几个alTop
元件。
不隶属于 StackOverflow