매번 감사합니다. 원하는 기능이 있네요
그럼 이만~ 자주 부탁드리겠습니다.
장성호 님이 쓰신 글 :
: TMemo 를 비롯하여 TListBox TListView ,TStringGrid 등 ScrollBar를 Scroll시키는 방법은 대게 비슷합니다.
:
: TMemo를 기존으로 몇가지 방법을 정리해 보겠습니다.
:
: 방법1. SelStart를 Text-Length 즉 줄끝으로 정하기.. (꼼수)
:
:
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: Memo1->SelStart=Memo1->Text.Length()-2;
: Memo1->SelLength=1;
: }
:
:
:
: 방법2. WM_VSCROLL 메세지에 SB_BOTTOM을 wParam으로
:
:
: void __fastcall TForm1::Button3Click(TObject *Sender)
: {
: // SendMessage(Memo1->Handle,WM_VSCROLL, SB_BOTTOM, 0);
: Memo1->Perform(WM_VSCROLL, SB_BOTTOM, 0);
: }
: //SendMessage와 Perform을 거의 똑같음
:
:
:
: 방법3. TMemo 같은 EDIT 컨트롤의 경우 EM_LINESCROLL 메세지를 이용
:
:
: void __fastcall TForm1::Button4Click(TObject *Sender)
: {
: Memo1->Perform(EM_LINESCROLL,0,Memo1->Lines->Count-1);
: }
:
:
: 방법4. 기타 Scroll관련 메세지 이용
:
:
: void __fastcall TForm1::Button5Click(TObject *Sender)
: {
: Memo1->Perform(EM_SCROLL,SB_BOTTOM,0);
:
: // 기타 SB(ScrollBar) 메세지
: //#define SB_LINEUP 0 //한줄 위로
: //#define SB_LINELEFT 0 // 왼쪽 한줄
: //#define SB_LINEDOWN 1 // 아래로 한줄
: //#define SB_LINERIGHT 1 // 오른쪽으로 한줄
: //#define SB_PAGEUP 2 //한 페이지 위로
: //#define SB_PAGELEFT 2 //한 페이지 왼쪽으로
: //#define SB_PAGEDOWN 3 //한 페이지 아래로
: //#define SB_PAGERIGHT 3 //한 페이지 오른쪽으로
: //#define SB_THUMBPOSITION 4 // ???
: //#define SB_THUMBTRACK 5 // ???
: //#define SB_TOP 6 // 맨 위로
: //#define SB_LEFT 6 // 맨 왼쪽으로
: //#define SB_BOTTOM 7 // 맨 아래로
: //#define SB_RIGHT 7 // 맨 오른쪽으로
: //#define SB_ENDSCROLL 8 // ???
:
: }
:
:
:
: 방법2 가 일반적으로 많이 쓰이는것 같습니다.
: TMemo뿐만 아니라 다른 Control에도 대게 잘 적용되고 하니까요
:
: 그럼..
:
:
: 번외편 님이 쓰신 글 :
: : Memo에 받은 데이터를 표시하다가 100줄 이상 넘어가면
: : 윗줄부터 삭제하려고 합니다
: : 그래서 이런방법을 써봤는데 삭제가 되긴 되는데 마우스 포인터가
: : Memo 맨위에 있네요. 이 마우스 포인터를 맨아래로 내리려면 어떻게 해줘야하나요?
: :
: : if( data[serial_number] == 0x0d )
: : {
: :
: : *Str_Data = (char)data[0];
: : for(j=1;j<serial_number ;j++)
: : {
: : *Str_Data = *Str_Data + (char)(data[j]);
: : }
: :
: : Memo1->Lines->Add(*Str_Data ) ;
: : while(Memo1->Lines->Count>100)Memo1->Lines->Delete(0); <-- 이부분입니다.
: : serial_number = 0;
: :
: : }
: : else
: : {
: : serial_number++ ;
: : }