我有自己的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事件中的命令:)通过删除所有手工调整大小的函数,并激活表格默认的缩放器,问题解决了 感谢大家的帮助