我在一个窗口中放了一个Panel1(alTop),一个TScrollBox(alClient),后者里面又放了一个Panel2,Panel2需要根据程序参数调整大小,有时会远远大于窗口,于是TScrollBox出现滚动条,可当我将滚动条滚动底(右)部的,我在Panel2中拖动我放的Label时,Lable经过的地方全变为Label的的色彩了,不滚动滚动条就没有这样的情况,我是在Label的OnMouseMove事件移动Label的,在移动时我也调用了Panel2和窗体的Repait方法了的,可这是为什么呢,请问如何解决?请各位高手帮帮我。
但是记得设置:ScrollBox.DoubleBuffered := True;
var
Form1: TForm1;
cap: boolean;
mx,my: integer;
implementation{$R *.dfm}{ TForm1 }procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in shift then cap:=true;
mx:=x;
my:=y;
end;procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssLeft in Shift)and cap then
begin
Label1.Left:=Label1.Left+(x-mx);
Label1.Top:=Label1.Top+(y-my);
end;
end;procedure TForm1.Panel1Click(Sender: TObject);
begin
Panel2.Width:=400;
Panel2.Height:=400;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Panel2.Color:=clGray;
Label1.Color:=clWhite;
end;
try
finally
LockWindowUpdate(0);
end;