程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 制作Delphi的豎排標簽

制作Delphi的豎排標簽

編輯:Delphi

  大家知道用Deiphi開發應用程序時標簽是必不可少的,但是Deiphi提供的Label構件只支持橫排方式的標簽,而不支持豎排方式標簽。

  編寫一段簡單的函數就可以把標簽從橫排變成豎排。因為中文字符集是用兩個字節表示一個字符的,所以應在字符串的每兩個字節之間加入回車換行符。這個函數的參數是一字符串,返回值是在中文字符之間添加了回車換行符的一個新的字符串。

  下面就舉例說明:我們以豎排方式顯示一首詩。

  新建一工程。

  首先在implementation部分定義一個字符串數組常量poemary,該數組的每一個成員順序存放了詩中的一句。

  const

  poemary: array[0..6] of string = (游子吟, 慈母手中線,游子身上衣, 臨行密密縫, 意恐遲遲歸, 誰言寸草心,報得三春晖);

  隨後,在implementation部分加入字符串轉換函數,代碼如下:

  function convertstring(source:string):string;
  var
  i,j:integer;
  a,b:array[0..50] of char;
  begin
  StrPCopy(a, source) ;
  j:=0; i:=0;
  while (a[j] $#@60;$#@62;#0) do begin
  b[i]:=a[j];
  if (j mod 2=1)and(j$#@62;0) then begin
  Inc(i); b[i]:=#13;
  end;
  Inc(j); Inc(i);
  end;
  b[i-1]:=#0;
  result:= strpas(b);
  end;

  最後添加Form1的OnCreate事件。注意:要在uses子句中添加單元名稱stdctrls。

  procedure TForm1.FormCreate(Sender: TObject);
  var
  labary:array[0..6] of Tlabel;
  i:integer;
  begin
  for i:=0 to 6 do
  begin
  labary[i]:=Tlabel.Create(self);
  labary[i].parent:=self;
  labary[i].caption:=convertstring(poemary[i]);
  labary[i].top:=(form1.Height-labary[i].height) div 2;
  labary[i].left:=10+i*33;
  end;
  end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved