var
Form3: TForm3;
setcap:boolean=false;
procedure TForm3.onmousemove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if timer1.Enabled=false then
begin
BitBtn2.Left :=832;
//BitBtn3.Left :=808; timer1.Enabled :=true; end
else begin
BitBtn2.Left :=960;
//BitBtn3.Left :=936; timer1.Enabled :=false;
end;
end;procedure TForm3.Timer1Timer(Sender: TObject);
begin if setcap=false then
begin setcapturecontrol(BitBtn2); setcap:=true; end
else begin setcapturecontrol(nil);
//timer1.Enabled :=true;
setcap:=false;
end;end;
怎么还是一闪一闪的?还有要做到鼠标移到那个按钮那个就冒出来离开就变回原来的样子,要怎么写啊? 求教!
Form3: TForm3;
setcap:boolean=false;
procedure TForm3.onmousemove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if timer1.Enabled=false then
begin
BitBtn2.Left :=832;
//BitBtn3.Left :=808; timer1.Enabled :=true; end
else begin
BitBtn2.Left :=960;
//BitBtn3.Left :=936; timer1.Enabled :=false;
end;
end;procedure TForm3.Timer1Timer(Sender: TObject);
begin if setcap=false then
begin setcapturecontrol(BitBtn2); setcap:=true; end
else begin setcapturecontrol(nil);
//timer1.Enabled :=true;
setcap:=false;
end;end;
怎么还是一闪一闪的?还有要做到鼠标移到那个按钮那个就冒出来离开就变回原来的样子,要怎么写啊? 求教!
1 你可以把父容器例如panel和form的doublebuffer打开
2 如果方法一不管用可以试下,移动之前,把父容器例如panel的visable设为false,移动后设为true,看一下还会闪么?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
b: boolean;implementation{$R *.dfm}procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if b then exit;
if (sender as TButton).Left = 5 then
(sender as TButton).Left := 5- (sender as TButton).Width
else
(sender as TButton).Left := 5;
b:= true;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
b:= false;
end;end.
implementation{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
button1.Left :=10-button1.Width;
end;procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Button1.Left := 0;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
button1.Left :=10-button1.Width;
end;end.