难道在TEdit中使用靠右对齐输入的机会会少吗?比如输入数字。Delphi5这样,Delphi6这样,Delphi7这样,到了Delphi2005还是这样。难道每次都要自已写这个属性吗?实在是不解,是不是在Delphi自带控件中有其它的控件可以实现这个要求?发发牢骚,顺便求解~Up 者有分~

解决方案 »

  1.   

    我也郁闷这个
    难道老外不需要这个
    HOHO
      

  2.   

    哦 可以去BORLAND社区反应去 哈。。应该还有别的原因的吧
      

  3.   

    Edit控件是没这个功能,但可以换其他控件
    比如用MEMO,大小拉成Edit一样大,哈哈,纯粹骗人
      

  4.   

    送楼上bee2518(迷茫ing)四个字:"误人子弟"开个玩笑,^_^ ~
      

  5.   

    Raize控件组里面的TRzEdit有这个属性.
      

  6.   

    Raize Components 3.0.9下载地址:
    http://www.delphibox.com/article.asp?articleid=282
      

  7.   

    只是用第三方控件比较麻烦一些,不知道borland为什么不加上~
      

  8.   

    可能Borland认为这个不是很有用吧。。
      

  9.   

    bee2518(迷茫ing)说的也不错啊。
    可以这么用
      

  10.   

    Edit是WINDOWS内置的,虽然有设置对齐方式的属性,但居中和居右对齐都要求是多行方式,而TEDIT是单行方式,所以不行。第三方控件或自己写代码可以做到,但要点是要接管ENTER键的输入,因为是多行方式,用户按回车会导致换行。
      

  11.   

    SeaWave(NoSound) 好象说到重点了,可为什么单行就不可以右对齐呢?是Windows规定的吗?可Windows又为什么要这样规定呢?
      

  12.   

    SeaWave(NoSound) 有道理,
    但是对于开发东西来说,最好用别的控件。
    如果没必要的话,我建议还是用这个,因为DELPHI本身的控件和WINDOWS结合还是比较好。
      

  13.   

    是WINDOWS规定的,单行不可以右对齐。TEdit本质上是一个Windows内置样式(EDIT)的子窗口,在底层用CreateWindow()这个API来创建,其类名为EDIT,样式可以包含以ES_开头的常量(微软定义),默认为单行、左对齐,如果非要居中或右对齐(ES_CENTER或ES_RIGHT),那么必须同时包含ES_MULTILINE样式(参考API帮助),至于微软为什么要这样规定,只有比尔盖茨知道了。要自己写控件实现,可以重载CreateParams()这个方法,将ES_MULTILINE和ES_RIGHT样式添加进去,然后重载KeyDown方法,捕获用户按下回车键(#13),免得换行(因为是多行文本)。要自己在运行时刻实现,可以在窗体创建时用SetWindowLong()这个API来设置ES_MULTILINE和ES_RIGHT样式,同样,需要为该TEDIT控件的OnKeyPress事件里写代码,忽略#13这个键值。
      

  14.   

    SeaWave(NoSound) ( ) 说得对。我以前重载过,但是右对齐后当字符串长度超过Edit的长度后显示方式还是从左往右的。不好用。