delphi 编程技巧

源代码在线查看: delphi 中自做动态显示的控件 (2001年5月22日).txt

软件大小: 774 K
上传用户: zyhunicom
关键词: delphi 编程技巧
下载地址: 免注册下载 普通下载 VIP

相关代码

				Delphi 中自做动态显示的控件 (2001年5月22日) 
				
				本站更新  分类:控件制作   作者:  推荐:   阅读次数:126  
				(http://www.codesky.net)  
				
				--------------------------------------------------------------------------------
				---- 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 下编译运行通过。 
				 
				 
							

相关资源