中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 临时文章
控件移动类的实现之三
作者:linzhengqun 时间:2002-09-26 11:41 出处:互联网 责编:chinaitpower
              摘要:控件移动类的实现之三

我们用一个例子来演示这个类的用法,建一个工程,将TDragClass的单元加入主窗体单元中,代码如下:

 

unit Main;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, Buttons,uDrag,uDragPoint, jpeg;

 

type

  TForm1 = class(TForm)

    Bevel1: TBevel;

Button3: TButton; //指定用何种方式移动和拉动

Edit2: TEdit;//用于设定跳跃式移动的幅度

Button4: TButton;//确定Edit2中的内容

    Button1: TButton;//点击该按钮,加入下面的控件,实现控件移动

    Panel1: TPanel;

    Shape1: TShape;

    Image1: TImage;

    Button2: TButton;

    Edit1: TEdit;

    StaticText1: TStaticText;

    Shape2: TShape;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure FormClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

    MyDrag:TDragClass;

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  myDrag.addControl(Edit1);

  myDrag.addControl(Button2);

  myDrag.addControl(Shape1);

  myDrag.addControl(Image1);

  myDrag.addControl(Panel1);

  myDrag.addControl(BitBtn1);

  myDrag.addControl(shape2);

  myDrag.addControl(BitBtn2);

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  myDrag:=TDragClass.create(self);

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

   if Assigned(myDrag) then

    MyDrag.Free;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  myDrag.isMoveStep:=not myDrag.isMoveStep;

  if myDrag.isMoveStep then

     Button3.Caption:='连接式移动'

  else

     Button3.Caption:='跳跃式移动';

end;

 

procedure TForm1.Button4Click(Sender: TObject);

var value:integer;

begin

  if TryStrtoInt(Edit2.Text,value) then

    myDrag.MoveStep:=value;

end;

 

procedure TForm1.FormClick(Sender: TObject);

begin

    myDrag.SetPointVisible(false);

end;

 

end.

 

运行程序,点击Button1按钮,看看如何,下面的控件是不是都可以移动了呢,再点击Button3,控件的移动是不是变得不连续了呢,再输入Edit2的值,然后点确定,控件移动的不连续性是不是变化了呢。

 

至此这个控件移动类讲解完毕,但还有很多改善的地方,有兴趣自己改吧。还是那句话,希望对你有用。


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有