0

我有自己的 Form Resize 功能,但是 TChromium 组件有问题。当我尝试调整表单大小时,TChromium 的背景颜色变为黑色并快速闪烁,直到调整大小过程停止,而不是每次都必须是白色。此错误仅适用于 DelphiXE3。在 Delphi7 中一切正常,但由于某种原因我不能使用 Delphi7(某些 TChromium 函数不起作用)。

请帮我解决这个问题。这是我的 Resize Function 代码,基于 Timer Component(Interval:1):

//-------------------------FORM RESIZE TIMER BEGIN
if(Form1.Width>=((Screen.Width div 2))) then
begin
    if(resize_to=LEF) then
    begin
        //Lets Resize To Left
        if((Form1.Width>((Screen.Width div 2))) OR ((Mouse.CursorPos.X-Last_Cur_POSx)<0)) then 
            Form1.Left:=Mouse.CursorPos.X;

        if((Form1.Width>((Screen.Width div 2))) OR ((Mouse.CursorPos.X-Last_Cur_POSx)<0)) then 
            Form1.Width:=Form1.Width-(Mouse.CursorPos.X-Last_Cur_POSx);

        SetCursorPos(Form1.Left,Mouse.CursorPos.Y);
        Last_Cur_POSx:=Mouse.CursorPos.X; //Remember Last Cursor Position
    end
    else
        if(resize_to=RIGHT) then
        begin
            //Lets Resize To Right
            if((Form1.Width>((Screen.Width div 2))) OR ((Mouse.CursorPos.X-Last_Cur_POSx)>0)) then 
                Form1.Width:=Form1.Width+(Mouse.CursorPos.X-Last_Cur_POSx);

            SetCursorPos(Form1.Left+Form1.Width,Mouse.CursorPos.Y);
            Last_Cur_POSx:=Mouse.CursorPos.X; //Remember Last Cursor Position
        end
        else
            if(resize_to=BOTTOM) then
            begin
                //Lets Resize To Bottom
                if(Form1.Height<(Screen.Height div 2)) then 
                     Form1.Height:=Screen.Height div 2
                else
                    if((Form1.Height-Form1.Top)<=((Screen.Height-Task_Panel_Size)-Form1.Top)) then 
                        Form1.Height:=Form1.Height+(Mouse.CursorPos.Y-Last_Cur_POSy)
                    else 
                        Form1.Height:=((Screen.Height-Task_Panel_Size)-Form1.Top);

                SetCursorPos(Mouse.CursorPos.X,Form1.Top+Form1.Height);
                Last_Cur_POSy:=Mouse.CursorPos.Y; //Remember Last Cursor Position
            end
end
else
begin
    Form1.Width:=(Screen.Width div 2);
end
//-------------------------FORM RESIZE TIMER END

谢谢。

通过添加 sleep(100) 解决了问题;Form1.Paint 事件中的命令 :) 通过删除所有手工调整大小功能并激活 Form 默认调整大小,问题解决了。
感谢大家的帮助

4

0 回答 0