说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

制作Delphi的竖排标签

HTML文档下载 WORD文档下载 PDF文档下载
制作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] <>#0) do begin

b[i]:=a[j];

if (j mod 2=1)and(j>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;

运行结果如图所示,此程序在Windows 95,Delphi3.0环境中运行通过。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘