Canvas上的字符串怎么换行?

linzi 2001-10-26 10:56:32
我要往一个Canvas上写一串字符,但是字符串的长度超过了Canvas的宽度,怎么实现让字符串自动换行?有简单的方法吗?
...全文
440 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
数字蛋糕 2001-10-28
  • 打赏
  • 举报
回复
DrawText确实有用,可惜好像只能在空格处自动换行。
comanche 2001-10-28
  • 打赏
  • 举报
回复
来迟, DrawText 可以, Canvas 中有 TextRect可用
王集鹄 2001-10-27
  • 打赏
  • 举报
回复
var
I: Integer;
H: Integer;
begin
H := Canvas.TextHeight('|');
for I := 0 to Memo1.Lines.Count - 1 do
Canvas.TextOut(I * H, 0, Memo1.Lines[I]);
end;
telstar 2001-10-27
  • 打赏
  • 举报
回复
用textRect,指定你想输出的方框他就可以自动换行
weixiaohua 2001-10-27
  • 打赏
  • 举报
回复
#10
xzgyb 2001-10-27
  • 打赏
  • 举报
回复
DrawText好用
eastxiang 2001-10-27
  • 打赏
  • 举报
回复
up
hansonboy 2001-10-27
  • 打赏
  • 举报
回复
你真系厅怪啦,你想在那里换行就可以在那里换行啦, 如果你想每行50个字符,把上面的10改成50就可以了
linzi 2001-10-27
  • 打赏
  • 举报
回复
to hansonboy(良):
我怎么知道该在哪个字符处换行?
saimaya 2001-10-27
  • 打赏
  • 举报
回复
用Chr(13)啊
hansonboy 2001-10-27
  • 打赏
  • 举报
回复
我的方法不行吗? 你只要把它改成一条涵数,画布输出前调用一下这条涵数就可以了
xzgyb 2001-10-27
  • 打赏
  • 举报
回复
是吗,我过会试试
linzi 2001-10-27
  • 打赏
  • 举报
回复
DT_WORDBREAK好象不行
xzgyb 2001-10-27
  • 打赏
  • 举报
回复
int DrawText(

HDC hDC, // handle to device context
LPCTSTR lpString, // pointer to string to draw
int nCount, // string length, in characters
LPRECT lpRect, // pointer to structure with formatting dimensions
UINT uFormat // text-drawing flags
);
uFormat选DT_WORDBREAK为自动换行
好像是
linzi 2001-10-27
  • 打赏
  • 举报
回复
还有人知道吗?
zgamer 2001-10-27
  • 打赏
  • 举报
回复
String1#13#10String2
programlover 2001-10-27
  • 打赏
  • 举报
回复
cao!
ExtTextOut
hansonboy 2001-10-27
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
str1:string;
begin
str1:=edit1.Text;
j:=0;
for i:=0 to length(str1)-1 do
begin
if j=11 then
begin
insert(#13,str1,I);
j:=1
end
else
inc(j);
end;
showmessage(str1);
end;
数字蛋糕 2001-10-27
  • 打赏
  • 举报
回复
使用DrawText这一API,看看帮助后你会有很多收获的。
EP外星人 2001-10-27
  • 打赏
  • 举报
回复
写两句话。
加载更多回复(6)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧