Q&A

  • Edit 박스에서 커서가 오른쪽에 나타나게 하는 방법 없나요?

Edit 박스를 만들면 커서가 Edit 박스 창의 왼쪽에 붙어서 깜박거리는데요.

이것을 커서를 오른쪽에 있게해서 숫자 입력을 받으려고 합니다.

고수님들 답변 부탁합니다~
2  COMMENTS
  • Profile
    구창민 2002.12.19 02:51
    안녕하세요~ 구창민입니다.

    TEdit 는 오른쪽 정렬을 지원하지 않습니다.

    아래의 컴포넌트를 등록하시고, 사용해보세요~

    항상 즐거운 프로그래밍 하시구요~

    unit AlignedEdit;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
    Dialogs,
    StdCtrls;

    type
    TAlignedEdit = class(TEdit)
    private
       fAlignment: TAlignment;
       procedure SetAlignment(const Value: TAlignment);
       procedure WMGetDlgCode(var Message: TWMGetDlgCode); message
    WM_GETDLGCODE;
       { Private declarations }
    protected
       { Protected declarations }
       Procedure CreateParams( Var params: TCreateParams ); override;
    public
       { Public declarations }
    published
       { Published declarations }
       property Alignment: TAlignment read fAlignment write SetAlignment
         default taLeftJustify;
    end;

    procedure Register;

    implementation

    procedure Register;
    begin
    RegisterComponents('Sample', [TAlignedEdit]);
    end;

    { TAlignedEdit }

    procedure TAlignedEdit.CreateParams(var params: TCreateParams);
    const
    Styles : Array [TAlignment] of DWORD =
              (ES_LEFT, ES_RIGHT, ES_CENTER );
    begin
    inherited;
    params.style := params.style or Styles[ Falignment ] or
                     ES_MULTILINE * Ord( FAlignment <> taLeftJustify);
    end;

    procedure TAlignedEdit.SetAlignment(const Value: TAlignment);
    begin
    If fAlignment <> Value Then Begin
       fAlignment := Value;
       RecreateWnd;
    End;
    end;

    procedure TAlignedEdit.WMGetDlgCode(var Message: TWMGetDlgCode);
    begin
    inherited;
    Message.Result := Message.Result and not DLGC_WANTALLKEYS;
    end;



  • Profile
    차유진 2002.12.19 03:04
    ^^*