请问一下为什么(英文+中文)字间隔就不对不齐?
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
DrawStyle: Integer;
MyRect: TRect;
begin
MyRect:=label1.Canvas.ClipRect;
str := 'abcde1111';
DrawStyle := DT_EXPANDTABS or DT_CENTER or DT_VCENTER;
SetTextCharacterExtra(label1.Canvas.Handle, 10);
DrawText(label1.Canvas.Handle, PansiChar(str), Length(str),MyRect, DrawStyle);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
DrawStyle: Integer;
MyRect: TRect;
begin
MyRect:=label1.Canvas.ClipRect;
str := 'abcde1111';
DrawStyle := DT_EXPANDTABS or DT_CENTER or DT_VCENTER;
SetTextCharacterExtra(label1.Canvas.Handle, 10);
DrawText(label1.Canvas.Handle, PansiChar(str), Length(str),MyRect, DrawStyle);
end;
解决方案 »
- 关于ShareMem与dll的问题
- '' is not a valid integer value! 错误提示
- 怎样动态创建数据库
- 求助,帮忙看看问题在哪?
- dbgrid的问题!
- 请问怎么控制TMediaPlayer控件displayRect 中的值以及怎么才能使它全屏?在线等!!
- 在delphi中,我想要查询在姓名中含有“英”的所有的姓名,如何做?
- 一个数据库模糊查询的问题 100人民币悬赏!!!
- 在xe5的时候 直接可以开发手机怎么到xe6就不行了 ,还是我安装有问题。
- 软件工程DFD、IPO、HIPO等讨论,138分等你!(软工那边太冷静,还是Delphi大本营好)
- [求助]我的三方控件的使用超级恐怖问题
- 如何取出webbroswer的session并放入idhttp?
procedure TForm1.FormPaint(Sender: TObject);
const
str = 'Delphi123';
// arr: array[0..7] of Integer = (10,10,10,10,10,10,10,10);//用这个可以
var
MyRect: TRect;
arr: array of Integer;
i:integer;
begin
SetLength(arr, Length(str)-1);
for i := 0 to Length(str) - 1 do//改用这个就不行??????
arr[i]:=10;
MyRect := Rect(10,10,200,200);
ExtTextOut(Canvas.Handle, 50, 50, ETO_CLIPPED, @MyRect, str, Length(str), @arr);
end;