首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi外观的Flicker Free

Delphi外观的Flicker Free
EN

Stack Overflow用户
提问于 2017-01-01 22:28:54
回答 0查看 1.1K关注 0票数 3

如果我用一个画框和一个滚动条创建一个简单的应用程序,在画框中画一些矩形,并使滚动条改变刷新画框,当我拖动滚动条(在窗体上设置了DoubleBuffer )时,我会得到一个无闪烁的显示:

代码语言:javascript
复制
procedure TMainForm.OnHorzChange(Sender: TObject);
begin
    PaintBox.Refresh;
end;

procedure TMainForm.OnPaint(Sender: TObject);
var
    x, y: integer;

begin
    with PaintBox.Canvas do
    begin
        Pen.Color := clBlack;
        Brush.Color := clGray;
        for y := 0 to 9 do
            for x := 0 to 9 do
                Rectangle(x * 32, y * 32, x * 32 + 24, y * 32 + 24);
    end;
end;

如果我随后将外观更改为Carbon,则闪烁将返回:

代码语言:javascript
复制
program test;

uses
    Vcl.Forms,
    main in 'main.pas' {MainForm},
    Vcl.Themes,
    Vcl.Styles;

{$R *.res}

begin
    Application.Initialize;
    Application.MainFormOnTaskbar := True;
    TStyleManager.TrySetStyle('Carbon');
    Application.CreateForm(TMainForm, MainForm);
    Application.Run;
end.

那么,如何才能使用外观而不闪烁呢?在主窗口上设置双缓冲区并不能停止闪烁。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41416195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档