Q&A

  • 메모 컴포넌트에서..
안녕하세요..



여긴엔 첨 질문을 올리는군요..



질문1]



메모 컴포넌트에서 마우스로 클릭한 라인의 문자열을 가져 오는 방법을 알고 싶습니다..



질문2]



memo1.lines.add 할 때 지정한 색깔과 색깔의 반전을 주고 싶습니다..



팁관련 책을 찾아 보고 팁란을 뒤져 봐도 없어서 여기에 질문을 올려 봅니다..



좋은 답변 부탁드립니다..



그럼 수고하세요..

1  COMMENTS
  • Profile
    chaser 1999.04.22 01:32
    강신구 wrote:

    > 안녕하세요..

    >

    > 여긴엔 첨 질문을 올리는군요..

    >

    > 질문1]

    >

    > 메모 컴포넌트에서 마우스로 클릭한 라인의 문자열을 가져 오는 방법을 알고 싶습니다..

    >

    > 질문2]

    >

    > memo1.lines.add 할 때 지정한 색깔과 색깔의 반전을 주고 싶습니다..

    >

    > 팁관련 책을 찾아 보고 팁란을 뒤져 봐도 없어서 여기에 질문을 올려 봅니다..

    >

    > 좋은 답변 부탁드립니다..

    >

    > 그럼 수고하세요..



    몇가지 방법이 있는데 여기서는 SendMessage를 이용한것입니다.

    질문1]

    var

    nLine, nCol : LongInt;

    tmpStr : String;

    begin

    nLine := SendMessage(memo.Handle,

    EM_LINEFROMCHAR,

    HiWord(SendMessage(memo.Handle,EM_GETSEL,0,0)),

    0);



    nCol := HiWord(SendMessage(memo.Handle,EM_GETSEL,0,0)) -

    SendMessage(memo.Handle,EM_LINEINDEX,nLine,0);



    // 요기서 해당 라인의 문자열을 얻습니다요.

    tmpStr := Memo.Lines[nLine];

    end;



    위와 같이 하면 현재 Edit 커서가 위치한 Line, Column 정보를 얻을 수 있습니다.

    위 내용은 Memo에서 커서 위치를 Display할 때도 유용 하답니다.



    ====================================================================



    질문2]



    질문2를 구현하려면 RichEdit(TRichEdit)를 이용해야 합니다.

    글구 아래와 같이 하면 선택 영역의 색상과 글꼴 크기도 변경이 가능합니다.



    with memo1.SelAttributes do

    begin

    Color := clRed;

    Height := Height + 5;

    end;



    위에서 SelAttributes는 TTextAttributes 타입으로 정의 되어 있습니다.

    자세한 Property나 Method는 Help를 참고 하더라도 쉽게 할 수 있을 겁니다.