Delphi中自做动态显示的控件
点击次数:84 次 发布日期:2008-11-09 08:41:38 作者:源代码网
|
源代码网推荐 源代码网推荐 一. 方案 源代码网推荐 源代码网推荐 自做一个父类为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 要在同一个目录中(缺省为delphilib目录中。再单击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. 软件开发网 www.mscto.com
源代码网推荐 源代码网供稿. |
