请教:MESSAGEBOX中提示语对齐的问题?(100分)

  • 主题发起人 主题发起人 zfmich
  • 开始时间 开始时间
Z

zfmich

Unregistered / Unconfirmed
GUEST, unregistred user!
在用MESSAGEBOX时,如果提示语有多行的话,为什么用后补空格的问题不能使字符串对齐?具体见下所示:<br><br>var<br>&nbsp; s1, s2, s :string<br>begin<br>&nbsp; s1 := '第一' ; s2 := '第二行' ;<br><br>&nbsp; s := s1 + StringOfChar(' ', 20 - Length(s1)) + '88' + #13#10 +<br>&nbsp; &nbsp; &nbsp; &nbsp;s2 + StringOfChar(' ', 20 - Length(s2)) + '99' ;<br>&nbsp; Application.MessageBox(pChar(s), '', 0) ;<br>end ;<br><br>用上述方法为什么总是不能对齐,请问这是字体的缘故?还是PCHAR变量存放引起的?谢谢!<br>
 
你系统字体的问题,就是说一个汉字和两个空格的宽度不一致,俺道理说系统默认的是宋体,而宋体是等宽字体,不应该出现这个问题,除非你修改了系统的默认字体……<br>还有,如果非要实现类似的功能,不妨使用Tab键来玩玩。<br>var<br>&nbsp; s1, s2, s :string;<br>begin<br>&nbsp; s1 := '第一' ; s2 := '第二行' ;<br><br>&nbsp; s := s1 + #9 + '88' + #13#10 +<br>&nbsp; &nbsp; &nbsp; &nbsp;s2 + #9 + '99' ;<br>&nbsp; ShowMessage(pChar(s));<br>end ;<br>
 
我试了一下能对齐,可能是你的设置问题!
 
呵呵,解决了。<br>如果用我的那种方法必须先设置字体<br>canvas.font := screen.hintfont ;<br><br>不过,还是yzhshi的方法简单。只想到用空格了,没想用TAB,:)。<br>谢谢!
 
多人接受答案了。
 
后退
顶部