类QQ移动是怎么实现的(100分)

  • 主题发起人 主题发起人 咪咪富翁
  • 开始时间 开始时间

咪咪富翁

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons;
type
sa=class(tthread)
private
protected
procedure execute;override;
end;
TForm1 = class(TForm)
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure SpeedButton2Click(Sender: TObject);
procedure yd(na:tspeedbutton);
procedure SpeedButton3Click(Sender: TObject);
private
{ Private declarations }
public
ywx:sa;
{ Public declarations }
end;

var
Form1: TForm1;
na:tspeedbutton;//申明全局变量
implementation
{$R *.dfm}
procedure tform1.yd(na:tspeedbutton);
//自定义的过程实现单个speedbutton的移动
begin
if na.top>20 then
repeat
na.top:=na.top-1;
until
na.top=20
else
while na.top<200do
na.top:=na.top+1;
end;
procedure sa.execute;
begin
freeonterminate:=true;
//线程结束后自动退出内存
form1.yd(na);
//调用过程
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
na:=speedbutton2;
ywx:=sa.create(false);
//成功移动SpeedButton2,类QQ上的移动
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
SpeedButton2.Click;//试图先调用SpeedButton2的Click事件同时移动两个
//speedbutton
//问题所在,出现一些奇怪的动作,请指点
na:=speedbutton3;
ywx:=sa.create(false);
end;

end.
 
你是想实现QQ中的分组按钮那样的功能吗?已经有这样的控件了,而且我觉得他不光是移动
一下按钮就行了,还有里面的内容的组织你准备怎么解决法?
 
要使用分组按钮,有expressbar中有的.
 
to 教父,本来我想为每一各button 配一个panel的,现在下载了组件,问题解决了,
但还是希望大家来讨论
 
多人接受答案了。
 
后退
顶部