Delphi 中自做动态显示的控件,Delphi 中自做动态显示的控件
【 tulaoshi.com - 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 要在同一个目录中(缺省为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;  <
                        
来源:http://www.tulaoshi.com/n/20160129/1492340.html
看过《Delphi 中自做动态显示的控件》的人还看了以下文章 更多>>