说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

做动态显示的控件-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
做动态显示的控件-Delphi资料

Delphi以其优秀的界面和简单的用法深受广大程序员的喜爱.笔者经过摸索

自做了一个具有动态显示特性的控件。只需在主程序中调用该控件的一个方法即可实现动态显示。在动态显示的同时

为了不影响主程序做其他的事情

笔者采用了比较流行的线程技术。

一. 方案

自做一个父类为TEdit的控件

应该有一个Text属性,能自由地输入要动态显示的内容; 并且有一个MoveShow方法,使的Text的内容能动态的显示。在主程序中创建一个线程,启动线程时,调用该控件的MoveShow方法。

二. 制作控件

启动New Component

选Tedit为父类,建立L_Tedit1类,并创建L_edit.pas. 再编写L_edit.pas 如下:

unit L_Edit;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls;

type

L_TEdit1 = class(TEdit)

private

{ Private declarations }

protected

{ Protected declarations }

public

{ Public declarations }

constructor Create(AOwner:TComponent); override;

procedure MoveShow;

published

{ Published declarations }

property Text;

end;

procedure Register;

implementation

constructor L_TEdit1.Create(AOwner:TComponent);

begin

inherited create(aowner);

color:=clblue;

font.Color:=clyellow;

font.Size:=12;

font.Name:= '@仿宋_GB2312';

tabstop:=false;

update;

end;

procedure L_TEdit1.MoveShow;

var

edit_length

i:integer;

edit_char:char;

chars: string;

begin

chars:='';

if (length(text)=0) then

text:=’Welcom you to use the software!’;

edit_length:=length(text);

for i:=1 to edit_length do

begin

edit_char:=text[1];

if (Ord(edit_char) >127) then

if length(chars) >1 then

begin

text:=copy(text

2

edit_length-2)+chars;

chars:='';

end

else

begin

chars:=copy(text

1

2);

text:=copy(text

2

edit_length-1);

end

else

begin

text:=copy(text

2

edit_length-1)+edit_char;

end;

update;

sleep(100);

end;

end;

procedure Register;

begin

RegisterComponents('Samples'

[L_TEdit1]);

end;

end.

再保存该文件。

启动Image Editor 创建L_Edit.dcr

选New- >Bitmap,自己做一个图标,保存名为L_TEDIT1(与新建的类同名)。注意L_Edit.dcr 与L_Edit.pas 要在同一个目录中(缺省为\delphi\lib目录中。再单击Install Component. 选Into new package属性页,填上L_Edit.pas 的路径和文件名,并在该路径下新建L_Edit1.dpk 文件。之后一直单击OK即可。此时我们可以在Delphi 的工具栏Sample 一项中看到自己创建的图标。

三. 编写主程序

在主窗体Form1中放一自己创建的控件,在Text的属性中填上要显示的文字(中英文都可)。与该窗体对应的L_unit1.pas内容如下:

unit L_Unit1;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls

L_Edit;

type

Tmythread=class(TThread)

protected

procedure Execute; override;

end;

TForm1 = class(TForm)

L_TEdit11: L_TEdit1;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

MyThread1:TMyThread;

implementation

{$R *.DFM}

Procedure TMyThread.Execute;

begin

while true do form1.L_TEdit11.MoveShow;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

MyThread1:=TMyThread.Create(false);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

showmessage('Welcome You!');

end;

end.

该程序在Delphi4.0 for win95 下编译运行通过。

通过700合作伙伴的进一步细分,Google变得越来越像微软 一周热点:高薪必备:Hadoop求职者的6大攻略 谷歌Android主管:两周内为开发者推出可穿戴设备SDK 【OSTC讲师专访】魏子钧: “中国式开源”没有“然后” 揭秘CarPlay欲将颠覆汽车产业的真相 联想王岳源:利用Web App推动互联网转型 IT经理人:提高团队工作效率的11个方法 30美元一小时,数据科学家的收入是否太低? 选择Go语言的12个理由 动鱼数码携三款大作参战Unity游戏及应用大赛 从Google、Apple、Dropbox、Twitter和Square学到的管理哲学 软件开发就像炒股,关键看你怎么选股票! iOS 7.1正式版:新增CarPlay连接功能、完美支持iPhone 4 【OSTC讲师专访】马全一:Docker,Hadoop的竞争者来了! 福布斯:全球那些富可敌国的科技大佬们 抢工作、争资源,如此聪明的AI你拿什么阻止? iUI:移动Web应用开发必备的开源框架 支持iOS 7.1!苹果发布Xcode 5.1更新 视频云将成为2014年乐视新的发力点 3月12日:万维网迎来理念诞生25周年 《近匠》云适配CEO陈本峰:跨屏移动,曲线一样救国 Intel陈荣坤:赢取移动市场的几个先决条件 而立之年,开发者在害怕什么? 首席工程师揭秘:LinkedIn大数据后台是如何运作的 年交易额1800亿美元,揭秘PayPal成功背后的三大热门技术 微软妥协Android?向该平台推开源Office 365 SDK 中国云计算大会PPT集萃(一):众多名家分享技术挑战与行业趋势 速度是现在的10000倍,出自物理学家之手的新型电脑 逗你玩?淘宝开放平台从4月1起开始全面收费 出现编程疲劳?千万别纠结 “编程竞赛界王子”教你更好的招聘程序员 恶梦从上午开始 求助!我的CapsLock键出问题了(只能打开大写,不能关闭) 请帮我看这条SQL语句,什么地方不对啊! Webservice的哪里算中间层,可以进行逻辑控制?客户端是否需要midas.dll? 为什么客户端浏览器总出错误? 如何获得DataReader中的行数? Libran() 请进 什么关键时候信赖全球通??屁话,大家来帮忙鄙视一下移动!!! 如何设置Log文件,记录数据库的操作信息? 请问哪里可以买到数据线把手迹和电脑联起来 蓝天,我有一个CELL表格的问题? 请问那里有bcb6.0下载(100)分 用DataGrid进行自定义分页后,页面切换时,如何方便的记录嵌在DataGrid中的Checkbox的状态? 关于GHOST的问题,现在的版本是否能刻WIN2000,以及域网中广播式刻录的问题,急!!!!!!!!!!!!!!!!!! 图片显示问题 请问有关程序员的考试 AntBrother(蚁哥) 请进 AntBrother(蚁哥) 请进 帮忙,如何屏闭TextBox控件的其它字符输入,只能输入数字!!!! 下的一段代码,在BCB怎是报错 大难题:在Win2000或者WinXP上安装Oracle7.3.3 ???? 一个很菜的问题:怎么查看所有的变量或属性值? 请问VB.NET如何获取IE收藏夹的位置? 迷惑不解,请教了 怎么用按钮来控制复选框的全部选中呀??? Excel中宏的问题!急 大难题:在Win2000或者WinXP上安装 Oracle7.3.3 ??? 关于窗口的大小和位置的问题 视图指针问题,高手帮忙!谢谢! 寻觅图象处理高手共同合作,欢迎朋友们去偶的站点申请免费主页空间 中秋佳节,兄弟们发Cash了吗 ? 寻觅图象处理高手共同合作,欢迎朋友们去偶的站点申请免费主页空间 寻觅图象处理高手共同合作,欢迎朋友们去偶的站点申请免费主页空间 用户控件 高手请进!!关于线程问题,本人在线等候!!! 如何禁止局域网中的MSN `×××怎样验证一个文本宽是否输入了汉字××× 为什么我的程序编译后跟没编译一样!大家救救我啊!急! JAVA发展趋势是什么? WEB服务器问题?????? 如何处理编码的问题 100分求助!关于多选框的问题!急啊!在线等!! 关于布局管理器的问题 recvfrom 的超时怎么不行呢? IIS不能访问asp文件,只能访问html文件,而且网页中的所有弹出类网页链接全都打不开(在线等) 在JSP里边怎么动态插入文件 设计物流系统应该考虑那些问题,实现那些功能,拜托 设计物流系统应该考虑那些问题,实现那些功能,拜托 php中的register_globals为off,怎么获得url中传递参数 设计物流系统应该考虑那些问题,实现那些功能,拜托 上海日記:震撼 已知方程x^2+y^2-2(m+3)x+2(1-4m^2)y+16m^4+9=0表示一个圆,求该圆半径的取值范围及求圆心的轨迹方程(需详解) 求由曲线X^2+Y^2=|X|+|Y|围成的图形的面积(过程麻烦也写下啦) 求一段不带一个脏字的脏话 甲‘乙两车同时从两地开出甲,甲车每小时行50千米,经过3小时已驾过中点30千米,此时甲车与乙车相距6千米,求乙车每小时行多少千米 甲乙分别从南京上海出发,甲车每小时行50千米,乙车每小时行30千米,两车离中点30千米处相遇,南京和上海相距多少千米 最先答的做最佳答案甲、乙两数的差是0.99,甲数的小数点向右移动一位则与乙数相等.甲、乙两数各是多少?(一定要算式) 甲乙两车同时从ab两地相向而行,两车在离中点50千米处相遇,已知甲车每小时行30千米,乙车每时比甲车多行百分之二十,求ab两地距离 还有金吒,木吒?在神话里算是很个性的名字, 两辆汽车同时从两地开出,甲车每小时行50千米,乙车每小时行48千米,3小时后,两车相遇并相距30千米.甲乙两地的距离是多少 哪吒挑龙筋是什么意思 在社会主义现代化建设的整个过程中,必须坚持(),反对资产阶级自由化 三部门:对芦山地震受损严重的企业将免官员:领导干部出问题犯错误原因之一是中国海军实兵演习遭外国舰机跟踪 训练国际社会热议习近平讲话:将周边外交提韩媒称中国顾客在韩免税店消费额首超韩土耳其肉夹馍“创始人”在德国去世享年洋葱涨价让印度执政党担忧 街头贩卖廉纽约华裔社区凶杀案致4儿童丧命美最大银行被罚130亿美元悉尼歌剧院走过40年美丽旅程纽约公寓内5人被杀,疑为华人【太坑爹】银行还有多少霸王条款有待清我的牛熊市记忆:从6124到1664买房怕跌?教你挑选抗跌盘乱“市”保值刘墉:你是我绑来的人质|私享有一种美,叫静默如初德国告诉我们,什么是民富国强|资识德国职场9种福利 分分钟令你哭晕在厕留美股回归 会不会白忙活|德林爆语【重磅】围观最强大脑谈投资——201贾樟柯:我不诗化自己的经历|私享奇怪生物的解剖图谱(又一本奇书)地球奴隶暗黑之尸体发火昊天道之俯瞰幽冥神印空间有你在身边就是晴天超级大修真剑剩仙神谱背负苍龙网游之天下美女藏獒穿越之隋朝安境桥旅游景辉楼旅游崆峒岩旅游玉溪三洞旅游纳西古乐旅游三江并流风景区旅游郭庄旅游慧因高丽寺旅游太子湾旅游三生石旅游峄山旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘