Q&A

  • editbox에서 정렬방법
너무 쉬운걸 물어봐서 고수님들이 화가나는거 아닌지 모르겠지만

저한테는 무지 어려운거라 물어봅니다..

에디터박스에서 그냥 입력을 하면 왼쪽으로 정렬되잖아요..

그런데 오른쪽으로 정렬되게 할순 없나요?

부디....부끄럽군요...

1  COMMENTS
  • Profile
    김영대 1999.12.17 01:08
    클릭 wrote:

    > 너무 쉬운걸 물어봐서 고수님들이 화가나는거 아닌지 모르겠지만

    > 저한테는 무지 어려운거라 물어봅니다..

    > 에디터박스에서 그냥 입력을 하면 왼쪽으로 정렬되잖아요..

    > 그런데 오른쪽으로 정렬되게 할순 없나요?

    > 부디....부끄럽군요...



    // 콤포넌트 입니다

    unit AlignedEdit;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TMyAlign = (alRight, alLeft, alCenter);



    TAlignedEdit = class(TEdit)

    private

    { Private declarations }

    FAlignment: TMyAlign;

    protected

    { Protected declarations }

    procedure CreateParams(var Params: TCreateParams); override;

    procedure SetAlignment(Value: TMyAlign);

    procedure KeyPress(var Key: Char); override;

    public

    { Public declarations }

    published

    { Published declarations }

    property Alignment: TMyAlign read FAlignment write SetAlignment;

    end;



    procedure Register;



    implementation



    procedure TAlignedEdit.CreateParams(var Params: TCreateParams);

    const

    Alignments: array[TMyAlign] of Longint = (ES_RIGHT, ES_LEFT, ES_CENTER);

    begin

    inherited CreateParams(Params);

    // ES_MULTILINE 속성이 있어야만 ES_RIGHT, ES_LEFT, ES_CENTER 가 동작함

    Params.Style := Params.Style or ES_MULTILINE or Alignments[FAlignment];

    end;



    procedure TAlignedEdit.SetAlignment(Value: TMyAlign);

    begin

    if FAlignment <> Value then

    begin

    FAlignment := Value;

    RecreateWnd;

    end;

    end;



    procedure TAlignedEdit.KeyPress(var Key: Char);

    begin

    inherited KeyPress(Key);

    // ES_MULTILINE 속성이 있어서 Enter 키를 막음

    if Key = #13 then

    Key := #0;

    end;



    procedure Register;

    begin

    RegisterComponents('Samples', [TAlignedEdit]);

    end;



    end.