published
    property integerprop:integer read FintegerProp write FintegerProp default 1;
  end;

解决方案 »

  1.   

    这是粘来的
    ^_^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 下编译运行通过。
      

  2.   

    现在CSDN无法给分,等以后再给两位分数