CnPack Forum » CnVCL 组件包 » [BUG]TCnEdit


2009-7-4 10:06 jAmEs_
[BUG]TCnEdit

TCnEdit.Alignment = taRightJustify時,處理不理想:
1.得到焦點時,在左邊顯示,此時輸入1個字符馬上就變到右邊顯示了
2.得到焦點時,在左邊顯示,但是失去焦點時,有時不會還原到右邊

2009-7-4 10:21 jAmEs_
粗略解決一下:

DoExit
begin
  ...
  //jAmEs_, 04/07/2009, Begin
  Invalidate;
  //jAmEs_, 04/07/2009, End
end;

WMPaint
begin
  ...
        //画文字
        MArgins := GetTextMArgins;
        //jAmEs_, 04/07/2009, Begin
        if Focused then
          Left := MArgins.X
        else
          case FAlignment of
            taLeftJustify: Left := MArgins.X;
            tArightJustify: Left := ClientWidth - TextWidth(S) - MArgins.X - 1;
          else
            Left := (ClientWidth - TextWidth(S)) div 2;
          end;
        //jAmEs_, 04/07/2009, End
        TextRect(R, Left, MArgins.Y, S);

        if (FLinkStyle <> lsNone) then   //画按钮
  ...
end;

2009-7-4 23:41 Passion
感谢指出,已修正并提交至SVN。

页: [1]
查看完整版本: [BUG]TCnEdit


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.