published
property integerprop:integer read FintegerProp write FintegerProp default 1;
end;
property integerprop:integer read FintegerProp write FintegerProp default 1;
end;
解决方案 »
- 关于AdoStoredProc控件传入参数的问题:传给变量的字段长度有没有限制啊!!,盼高手
- 进销存的需求分析及设计说明文档?
- 请问怎么用delphi判断c:\11里面有没有文件。包括这个文件夹是否存在
- 请教一个问题
- [200分相送]帮忙解决Socket通讯报错的问题。急!!!
- 如何判断frame是否已经创建?
- 请各位仁兄指点,非常感谢!关于SQLServer数据库的发布问题!
- 大家帮个忙,小菜问题!答对马上给分。
- 已知窗口句柄,如何取得窗口的图标(ICON)的句柄?(还附加一问)
- 一本好看有趣而又有用的书--《Delphi 深度历险》
- 如何去掉OICQ的广告
- 如何在定义函数或者过程中使用缺省值?
^_^Delphi 中自做动态显示的控件Delphi以其优秀的界面和简单的用法深受广大程序员的喜爱.笔者经过摸索自做了一个具有动态显示特性的控件。只需在主程序中调用该控件的一个方法即可实现动态显示。在动态显示的同时为了不影响主程序做其他的事情笔者采用了比较流行的线程技术。
一. 方案
自做一个父类为TEdit的控件应该有一个Text属性,能自由地输入要动态显示的内容; 并且有一个MoveShow方法,使的Text的内容能动态的显示。在主程序中创建一个线程,启动线程时,调用该控件的MoveShow方法。
二. 制作控件
启动New Component选Tedit为父类,建立L_Tedit1类,并创建L_edit.pas. 再编写L_edit.pas 如下:
unit L_Edit;interfaceusesWindowsMessagesSysUtilsClassesGraphics
ControlsFormsDialogs
StdCtrls;
typeL_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;
implementationconstructor L_TEdit1.Create(AOwner:TComponent);begininherited create(aowner);color:=clblue;font.Color:=clyellow;font.Size:=12;font.Name:= '@仿宋_GB2312';tabstop:=false;update;end;
procedure L_TEdit1.MoveShow;varedit_lengthi:integer;edit_char:char;chars: string;beginchars:='';if (length(text)=0) thentext:=’Welcom you to use the software!’;edit_length:=length(text);for i:=1 to edit_length dobeginedit_char:=text[1];if (Ord(edit_char) >127) thenif length(chars) >1 thenbegintext:=copy(text2edit_length-2)+chars;chars:='';endelsebeginchars:=copy(text12);text:=copy(text2edit_length-1);endelsebegintext:=copy(text2edit_length-1)+edit_char;end;update;sleep(100);end;end;procedure Register;beginRegisterComponents('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;interfaceusesWindowsMessagesSysUtilsClasses
GraphicsControlsFormsDialogs
StdCtrlsL_Edit;
typeTmythread=class(TThread)protectedprocedure 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;
varForm1: TForm1;MyThread1:TMyThread;implementation
{$R *.DFM}Procedure TMyThread.Execute;beginwhile true do form1.L_TEdit11.MoveShow;end;
procedure TForm1.FormCreate(Sender: TObject);beginMyThread1:=TMyThread.Create(false);end;
procedure TForm1.Button1Click(Sender: TObject);beginshowmessage('Welcome You!');end;
end.该程序在Delphi4.0 for win95 下编译运行通过。