求一算法 ( 积分: 100 )

  • 主题发起人 主题发起人 jiangzhang3942
  • 开始时间 开始时间
J

jiangzhang3942

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一行文本,里面有汉字和英文,我想让这行文本在正中间怎么办呀
 
我有一行文本,里面有汉字和英文,我想让这行文本在正中间怎么办呀
 
没有人知道吗
 
在哪显示啊,Memo?Canvas?Panel?
 
在文本中
 
你可以在写入到文本的时候就先规定好格式比如写入环境的HEIGHT,WIDTH等属性
说实在的你的问题有点含糊
 
我有一个文本格式是这样的
////////////////////////////////
safjklasfjlk
asfdjalsdfjk
asdfal;sdfj;lasf
asdfjlak;sfdjl;kasf
afd;las;fl
///////////////////////////////////
我想变成这些字在每行的中间例如
/////////////////////////////////////////////////
撒发撒发生skljalsfjla;sfja;lf
afjalkfdjalk;fjla;fjlk;afjla;ksdfjkl
a;slfdjasl;kfjals;dfj;lasfj;alsfjl;kasdfj;lasdfj
//////////////////////////////////////////////////
就是这样
 
在哪里显示啊,你还是没说明白,命令行环境吗?还是在记事本里?还是在程序界面里?
不同的环境需要不同的方法,也可能没有方法实现
 
很简单,首先找出最长的哪 一串,再将其它的串前填充与最大长度的差的一半的空格

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure mid(sList:TStrings);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.mid(sList: TStrings);
Var
iMaxLength,i,j:Integer;
sTemp:String;
begin
iMaxLength := 0;
for i := 0 to sList.Count -1 do
if Length(TrimLeft(TrimRight(sList.Strings))) > iMaxLength then
iMaxLength := Length(TrimLeft(TrimRight(sList.Strings)));
for i := 0 to sList.Count -1 do
Begin
sTemp := '';
for j := 1 to (iMaxLength - Length(TrimLeft(TrimRight(sList.Strings)))) div 2 do
sTemp := sTemp + ' ';
sList.Strings := sTemp + TrimLeft(TrimRight(sList.Strings));
end
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
mid(memo1.Lines);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Font.Charset := GB2312_CHARSET;
memo1.Font.Name := 'Fixedsys';
end;

end.
 
在文本显示呀
 
procedure TForm1.Button1Click(Sender: TObject);
begin
mid(memo1.Lines);
memo1.lines.savetofile(target.txt);
end;

你是 这个意思吗?  你的文本是什么意思啊,请说得清楚些。
 
我有一个文本文件,我想里面的文字想word那样,居中显示,就这么简单,我是用一行一行 的加空格,但我不知道加多少空格,总是算不对,因为里面有汉字和字母
 
怎样让文本的文字居中显示呀
 
没有人知道吗
 
用记事本打开吗? 如果窗口最大化的时候居中了,把窗口缩小怎么办?如果分辨率1024x768的时候居中了,800x600的时候怎么办?
 
procedure TForm1.Button1Click(Sender: TObject);
var
tempstr : string;
FClientRect : TRect;
begin
tempstr := 'dsfsdfsdf';
FClientRect := Rect(0,0,Self.Width,Self.Height);
DrawText(Canvas.Handle,Pchar(tempstr),Length(tempstr),FClientRect,DT_CENTER);
end;
 
后退
顶部