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
[47639] Re:Re:Timer때문에 생기는 깜빡임.ㅡㅡ+
맛스타 [] 1435 읽음    2007-01-04 09:34
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

   ListBox1->Items->BeginUpdate();
   ListBox1->Items->Clear();
   ListBox1->Items->Add("X:"+String((char*)x)+"mm\n");
   ListBox1->Items->Add("Y:"+String((char*)y)+"mm\n");
   ListBox1->Items->Add("Z:"+String((char*)z)+"mm\n");
   ListBox1->Items->EndUpdate();
}

위의 예제는 제가 쓰고 있는 타이머핸들러입니다. char *로 문자열 3개를 쓰고 다시 다 지우고를 100mm sec로 반복되게
만들어놨는데요.

BeginUpdate와 EndUpdate를 저렇게 써도  그래도 여전히 깜빡이더군요.
게시판을 찾아보니 BeginUpdate와 EndUpdate는
ListBox 등의 컴포넌트에서 한꺼번에 많은 추가, 삭제, 변경 등의 작업을 할 때의 깜박
임 및 속도저하 문제를 해결한다고 되어있던데.. 제 경우는 한꺼번에 많은 양의 데이터가 추가가 아닌
계속적인 화면 출력이라서 안 먹히는 거 같습니다.( 혹은 제가 사용을 잘 못 했을 수도..)

방법이 없을까요?? PaintBox로도 실험중인데 PaintBox에서 텍스트를 출력해서 깜빡임을 줄이는 방법은 없을까요?
읽어주셔서 감싸~*









허정주 님이 쓰신 글 :
: TListBox 를 사용하신다면 Items 속성에 BeginUpdate/EndUpdate 함수가 있습니다.
: Begin 을 호출하고 업데이트 후 End 를 호출하면 됩니다.
: 다음은 빌더 도움말의 예제입니다.
:
: void __fastcall Form1::ComboBox1DropDown(TObject *Sender)
: {
:   FontCombo->Items->BeginUpdate(); // prevent repaints until done
:   FontCombo->Items->Clear(); // empty the list of any old values
:   FontCombo->Sorted = true; // make sure the font names are sorted
:   FontCombo->Items = Screen->Fonts; // add the current list of fonts
:   FontCombo->Items->EndUpdate(); //reenable painting
: }
:
: PaintBox 는 저 함수가 없는거같네요;
: Bitmap 을 하나 만들어 다 그린후 한번에 뿌려줘야하나봐요
: 이 방법은 게시판에 있더군요 (좀전에 저도 보고 따라한-_-;)
:
: 맛스타 님이 쓰신 글 :
: : 타이머를 이용, 리스트박스에 랜덤함수를 사용해서 계속적으로 데이터를 add시키고 clear시키고 있습니다.
: : 데이터가 많이 깜빡이네요 ㅡㅡ;
: :
: : 출력을 PanitBox로도 해보고 있습니다. 게시판에 깜빡임에 관해 찾아보니깐 PaintBox에 관한 내용이 많아서요.
: : ex)   PaintBox1->Canvas->TextOutA(0,0,"String((char*)x)" );
: : 문제는 게시판은 거의 다 그림에 관한 내용인데 전 텍스트입니다.
: : (거의 비슷할 것이란 나름의 판단하에 ㅡㅡ;PaintBox로 실험했습니다.)
: : 
: : 리스트박스와 PaintBox에선 DoubleBuffer = true;가  안 먹혔습니다
: : (main form 생성자 부분에서 다음 코드를 넣었습니다. this->DoubleBuffered=true;)
: :
: : DoubleBuffer말고도 게시판의 다른 방법을 써보고도 있는데 잘 되지 않습니다.
: : 한 수 가르침 부탁드릴께요~*

+ -

관련 글 리스트
47624 Timer때문에 생기는 깜빡임.ㅡㅡ+ 맛스타 1017 2007/01/03
47635     Re:Timer때문에 생기는 깜빡임.ㅡㅡ+ 아루스 1175 2007/01/03
47639         Re:Re:Timer때문에 생기는 깜빡임.ㅡㅡ+ 맛스타 1435 2007/01/04
47644             Re:Re:Re:Timer때문에 생기는 깜빡임.ㅡㅡ+ 누군가 1089 2007/01/04
47652                 Re:Re:Re:Re:Timer때문에 생기는 깜빡임.ㅡㅡ+ 맛스타 1137 2007/01/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.