Q&A

  • 메모컴포런트에서 포커스를 내 마음대로 위치하는 방법 일반(VCL)
반갑습니다

전 텔파초보이구여 텔파를 사랑하는님들이 좀 많이 도와주어야 할 것 같아서~~~~~



다름이 아니라 메모를 저장하구나서

다시 그 메모컴포먼트에 저장한 내용을 불러오면 포커스위치가 맨밑으로 가 있는데...

그 포커스 위치를 맨 앞으로 바꿀수 있는 방법을 좀 가르쳐 주세여



send message를 사용 하면 된다는 얘기를 들어는데 방법좀 가르쳐 주세요...



즐거운 하루 되세요

2  COMMENTS
  • Profile
    돌머리 2000.09.22 23:59
    안녕하세요 김동원입니다.



    예전에 썼던명령인데.. 생각이 안나네요...

    꿩대신 닭이라고..



    function Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;

    함수를 이용해 보세요..



    MSG 메소드는 도움말에서 Messages->WinSight Tracks에서 찾으시면 되구요..



    Memo1.Perform(____, __, __);

    이런형태로 사용하시면 될겁니다..

    에구... 이것도 생각이 안나네...

    돌머리는 돌머리인가보네요..

    스크롤은 생각나는데..

    Perform(EM_SCROLLCRETE,0,0) => 요건 스크롤여.. 커서가 위치한곳 보여주는

    뒤에 숫자대로로 이동하는 것인데요..

    MSG 부분만 바꿔주면 될거여요



    답변이라고 해 놓고서 답변이 안
  • Profile
    최석기 2000.09.22 22:56
    안녕하세요.

    델파이세상(http://www.freechal.com/delphiworld)에 최석기입니다.



    님이 원하시는게 메모에서 Caret를 특정 위치로 이동 시키는 거라고 보면 되겠네요..



    그럼 다음과 같이 해보세요..



    procedure SetMemoRowCol(M: TMemo; Row, Col: Integer);

    begin

    M.SelStart := SendMessage(M.Handle, EM_LINEINDEX, Row, 0) + Col;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    SetMemoRowCol(Memo1, 0, 0); //caret를 행과 열 위치로 이동

    SendMessage(Memo1.handle, EM_SCROLLCARET, 0, 0); //Memo의 스크롤을 Caret 위치로 이동

    Memo1.SetFocus;

    end;



    forever wrote:

    > 반갑습니다

    > 전 텔파초보이구여 텔파를 사랑하는님들이 좀 많이 도와주어야 할 것 같아서~~~~~

    >

    > 다름이 아니라 메모를 저장하구나서

    > 다시 그 메모컴포먼트에 저장한 내용을 불러오면 포커스위치가 맨밑으로 가 있는데...

    > 그 포커스 위치를 맨 앞으로 바꿀수 있는 방법을 좀 가르쳐 주세여

    >

    > send message를 사용 하면 된다는 얘기를 들어는데 방법좀 가르쳐 주세요...

    >

    > 즐거운 하루 되세요