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

C++빌더 Q&A
C++Builder Programming Q&A
[24593] Re:[메모장]라인출력..
유영인.Chris [cuperido] 1024 읽음    2003-03-04 13:51
버튼을 누르면 Memo의 실질적인 데이터 맨 끝으로 가게하는 소스를 간단히 구현해 보았습니다.

void __fastcall TForm1::Button1Click(TObject *Sender)
{

int               itLine = Memo1->Lines->Count - 1 < 1 ? 0 : Memo1->Lines->Count - 1;


Memo1->SetFocus();

Memo1->SelStart = Memo1->Perform(EM_LINEINDEX, itLine, 0) + Memo1->Lines->Strings[itLine].Length();
SendMessage(Memo1->Handle, EM_SCROLLCARET, 2, 2);


}


괴로운 님이 쓰신 글 :
: 다음과 같이 메모장을 출력하고 있습니다. 
: for(int i=0; i<=Height; i++)
:      Draw(id+i*width, i); //
: 위는 메모장의 크기만큼 출력하는 루틴입니다.
: 그러니 커서가 다음 칸을 가르키까 맨 위의 라인의 보이지 않고 위로 올라가고
: 맨밑의 공간 라인이 추가되면서 커서가 맨 마지막 공간라인의 첫번째 셀을 가리키고 있더군여..
:
: 전 커서가 마지막 출력 라인(즉 공간라인)바로 위의 라인의 맨끝 라인을 가리키게 하고 싶고
: 그 다음 공간라인은 제거하고 싶습니다.
:
: 그래서
: TShiftState shift;
: sfift << ssHift; // 이부분은 따로 쓸 내용이 없어서 이렇게 적었습니다.
:                  //그냥 아무키다 받습니다 하니 방법을 잘 몰라서...
:                  //아시는 분 도움 부탁..
: MemoKeyDown(Memo,VK_SPACE,shift);
:
: 위와 같이 해서 MemoKeyDown을 추가하여 이부분은 그냥 메세지만 출력했습니다.
: MemoKeyDown 는 Memo장의 OnKeyDown에 적었습니다.
: MemoKeyDown 의 내용은 다음과 같습니다.
: case VK_BACK   : Memo1->Lines->Delete(Height); //마지막 출력라인 즉 공간라인 제거
:                  ShowMessage("VK_BACK Press");
:                  Memo1->SelStat = height -1; //이렇게 하면 라인 크기 끝 라인 바로
:                                              // 위로는 갈줄 알았습니다.
:                  break;
:
: 아무래도 위의 방법은 아닌거 같습니다.
: 혹시 아시는분 답변좀 헤 주세여..

+ -

관련 글 리스트
24542 [메모장]라인출력.. 괴로운 997 2003/02/28
24593     Re:[메모장]라인출력.. 유영인.Chris 1024 2003/03/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.