TChromium Delphi Xe3 Onresize It变黑

时间:2013-07-15 21:34:37

标签: delphi delphi-xe3 tchromium

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

请帮我解决这个问题。 这是我的调整大小函数代码,基于定时器组件(间隔: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事件中的命令:)   通过删除所有手工调整大小的函数,并激活表格默认的缩放器,问题解决了   感谢大家的帮助

0 个答案:

没有答案