熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi 中自做動態顯示的控件

2022-06-13   來源: Delphi編程 


  Delphi以其優秀的界面和簡單的用法深受廣大程序員的喜愛筆者經過摸索自做了一個具有動態顯示特性的控件只柙谥鞒絛蛑械饔酶每丶囊桓龇椒純墒迪侄允盡T诙允鏡耐?為了不影響主程序做其他的事情筆者采用了比較流行的線程技術 
  一. 方案 

  自做一個父類為TEdit的控件應該有一個Text屬性能自由地輸入要動態顯示的內容; 並且有一個MoveShow方法使的Text的內容能動態的顯示在主程序中創建一個線程啟動線程時調用該控件的MoveShow方法 

  二. 制作控件 

  啟動New Component選Tedit為父類建立L_Tedit並創建L_editpas 再編寫L_editpas 如下 

  unit L_Edit; 
interface 
uses 
 Windows Messages SysUtils Classes Graphics 
Controls Forms Dialogs 
 StdCtrls; 

  type 
 L_TEdit = 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_TEditCreate(AOwner:TComponent); 
begin 
inherited create(aowner); 
color:=clblue; 
fontColor:=clyellow; 
fontSize:=
fontName:= &#;@仿宋_GB&#;; 
tabstop:=false; 
update; 
end; 

  procedure L_TEditMoveShow; 
var 
 edit_lengthi:integer; 
 edit_char:char; 
 chars: string; 
begin 
 chars:=&#;&#;; 
 if (length(text)=) then 
text:=Welcom you to use the software!
 edit_length:=length(text); 
 for i:= to edit_length do 
 begin 
  edit_char:=text[]; 
  if (Ord(edit_char) >) then 
       if length(chars) > then 
         begin 
       text:=copy(textedit_length)+chars; 
         chars:=&#;&#;; 
         end 
         else 
         begin 
         chars:=copy(text); 
         text:=copy(textedit_length); 
        end 
  else 
  begin 
  text:=copy(textedit_length)+edit_char; 
  end; 
  update;
  sleep(); 
 end; 
end; 
 

  procedure Register; 
begin 
 RegisterComponents(&#;Samples&#; [L_TEdit]); 
end; 

  end 
再保存該文件 

  啟動Image Editor 創建L_Editdcr 選New >Bitmap自己做一個圖標保存名為L_TEDIT(與新建的類同名)注意L_Editdcr 與L_Editpas 要在同一個目錄中(缺省為\delphi\lib目錄中再單擊Install Component 選Into new package屬性頁填上L_Editpas 的路徑和文件名並在該路徑下新建L_Editdpk 文件之後一直單擊OK即可此時我們可以在Delphi 的工具欄Sample 一項中看到自己創建的圖標 

  三. 編寫主程序 

  在主窗體Form中放一自己創建的控件在Text的屬性中填上要顯示的文字(中英文都可)與該窗體對應的L_unitpas內容如下 

  unit L_Unit
interface 
uses 
 Windows Messages SysUtils Classes 
Graphics Controls Forms Dialogs 
 StdCtrls L_Edit; 

  type 
 Tmythread=class(TThread) 
 protected 
   procedure Execute; override; 
 end; 
 TForm = class(TForm) 
  L_TEdit: L_TEdit
  Button: TButton; 
  procedure FormCreate(Sender: TObject); 
  procedure ButtonClick(Sender: TObject); 
 private 
  { Private declarations } 
 public 
  { Public declarations } 
 end; 

  var 
 Form: TForm;  <    


From:http://tw.wingwit.com/Article/program/Delphi/201401/30262.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.