Q&A

  • 메모에 보이는 라인번호 알기
안녕하세요.



저는 메모를 스크롤 할때나, 커서로 메모를 상하로 이동후에

보이는 메모의 최상단의 라인번호가 얼마인지를 알고 싶습니다



ex}

11111111111111111 .......

22222222222222222 안보이는 부분

33333333333333333 .......

------------------

l4444444444444444 l .......

l5555555555555555 l

l... l 보이는 부분

l... l .......

------------------

위의 예제와 같다면 현재 메모에 보이는 글자는 444444444

라는 부분 부터지요. 즉 요 라인 번호를 알고 싶어서요.



만약 스크롤등으로 메모의 내용이 바뀔 경우에 그 라인번호를

알고자 합니다.



memo의 caret이나 Trect와관련이 있는것 같은데 저는 도저히

모르겠네요.



꼭 답변을 부탁드립니다.

1  COMMENTS
  • Profile
    김영대 2000.10.12 00:40
    내용이 약간 달라서..

    도움이 되실지는 모르겠지만...

    제가 아는 팁을 올립니다...



    메모의 현재 라인 번호 알아내기...



    funtion GetCurrLine(Memo:TMemo) : Integer;

    Result := Memo.Perform(EM_LINEFROMCHAR,Memo.SelStart,0);

    end;



    메모에서 현재 보이는 라인수 알아내기...



    function GetVisibleLine(Memo :TMemo) : Integer;

    var

    Metric : TTextMetric;

    DC : hDC;

    begin

    DC := GetWindowDC(Memo.Handle);

    GetTextMetrics(DC,Metric);

    Result := (GetTextRect(Memo).Bottom div Metric.tmHeight);

    end;

    function GetTextRect(Memo : TMemo) : TRect;// 텍스트 가 쓰여지는 영역 알아내기...

    var

    IParam : TRect;

    begin

    Memo.PerForm(EM_GETRECT,0,Integer(@IParam));

    Result := IParam;

    end;



    아무조록 도움이 되시기를 바랍니다.





    김경완 wrote:

    > 안녕하세요.

    >

    > 저는 메모를 스크롤 할때나, 커서로 메모를 상하로 이동후에

    > 보이는 메모의 최상단의 라인번호가 얼마인지를 알고 싶습니다

    >

    > ex}

    > 11111111111111111 .......

    > 22222222222222222 안보이는 부분

    > 33333333333333333 .......

    > ------------------

    > l4444444444444444 l .......

    > l5555555555555555 l

    > l... l 보이는 부분

    > l... l .......

    > ------------------

    > 위의 예제와 같다면 현재 메모에 보이는 글자는 444444444

    > 라는 부분 부터지요. 즉 요 라인 번호를 알고 싶어서요.

    >

    > 만약 스크롤등으로 메모의 내용이 바뀔 경우에 그 라인번호를

    > 알고자 합니다.

    >

    > memo의 caret이나 Trect와관련이 있는것 같은데 저는 도저히

    > 모르겠네요.

    >

    > 꼭 답변을 부탁드립니다.