Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[750] [답변] KIMOPEN/Delphi의 EditBox에서 오른쪽으로 정렬?
cmart2 [ ] 2367 읽음    1998-01-18 13:06
안녕하세요. 짱굽니다.

아래 두분이나 답변을 했주셨는데... 제가 염치가 없어서.....혹시 ...

이렇게 하면 어떨까 하고 무례하게 답변을 올립니다. 히~

에디트의 정렬 방식을 바꾸고 싶으시다면....

우선 다음 예로 만들어본 콤포넌트를 보면서

설명을 드리죠. 완전한 콤포넌트 소스입니다.

!!숫자표시는 안되요...

unit customEdit1;

interface

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

type
  TcustomEdit1 = class(TcustomEdit)
  private
    { Private declarations }
    FAlignment: TAlignment;
    procedure SetAlignment(Value: TAlignment);
  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('Chowh', [TcustomEdit1]);
end;

edit control

procedure TCustomEdit1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  case Alignment of
    taLeftJustify  : Params.Style := Params.Style
        or (ES_LEFT or Es_MULTILINE);
    taRightJustify : Params.Style := Params.Style
        or (ES_RIGHT or ES_MULTILINE);
    taCenter       : Params.Style := Params.Style
        or (ES_CENTER or Es_MULTILINE);
  end;
end;

procedure TCustomEdit1.SetAlignment(Value: TAlignment);
begin
  if FAlignment <> Value then
  begin
    FAlignment := Value;
    RecreateWnd;
  end;
end;

end.

여기에 보시는 예는 \Source 디렉토리에 있는 stdctrls.pas

에 있는 TCustomEdit에서 상속을 받아서 Alignment라는

프로퍼티를 만든건데....음....어차피 stdctrls.pas에

보시면 TCustomMemo도 TCustomEdit에서 상속을 받아

Edit Controls class를 조정하여 만든 녀석이죠..

help에서 Edit Controls class부분을 찾아보면

확실히 알게 되죠...어찌 되었든 이렇게 하면

정렬방식을 바꿀수 있는 Edit콤포넌트가 되는 거죠..

근데...만일 Number Edit를 만드실 생각이라면 ..

그냥 Memo를 이용하면 간단히 만들수 있다고...

시리우스님이 알려 주시네요... 만드신거 봤는데..

정말 괜찮은거 같애요... 위와 같은 고생을 할

필요도 없구 말이죠...

자리수와 ','표시를 나타내기 위해서는

pos(), cursorpos(), formatfloat()

등의 함수를 사용하면 될것 같군요.

자세히 설명하기엔 제 실력이 딸려서..히~

통신에 돌아보시면 이런 콤포넌트...

엄청나게 많을 겁니다. 꽤 유명한(?)거니까요..

암튼 이걸루 도움이 되었으면 좋겠군요.

그럼 좋은 코딩하세요.


+ -

관련 글 리스트
750 [답변] KIMOPEN/Delphi의 EditBox에서 오른쪽으로 정렬? cmart2 2367 1998/01/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.