前一段时间我下载了一个按钮控件,但是发现了改按钮caption不支持换行输出。
    我查看了下源代码,觉得里面用到了drawtext函数DrawText(handle,PChar(Caption),Length(Caption),rect,DT_CENTER);
    我想问下是不是Length(Caption)的时候,发现caption中有\n,然后就认为caption字符串已经结束,导致\n后的字符显示不出来。
    小弟是个新手,也许分析有误,还请各位大侠帮忙给出一个能换行的方法

解决方案 »

  1.   

    一般用#13换行,比如btn.caption:='abc'+#13+'bcd';
    也可以看看有没有WordWrap属性,设它为True宽度不够会自动换行
      

  2.   

    我目前的情况是下载了一个delphi代码编写的按钮控件,然后我安装在了CB6上使用,但是这个按钮不支持caption换行。我将button->Caption="1\n2";最后显示的只有1.
    我想知道在delphi中,当caption="1\n2"时,PChar(caption)和Length(caption)的值是多少,
      

  3.   

    delphi中'1\n2'就是一个字符串,不会做其他处理
      

  4.   

    \n是DOS字符形式。
    DELPHI里的string类型的字符串换行加上#13#10即可。
    is that clear?
      

  5.   

    delphi换行是#13#10,不是\n,有\n的地方也不会做出处理
      

  6.   

    一般这种控件在显示字符之前会设置字符的那个RECT区域, 你最好跟踪一下, 自己改改吧