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

델파이 Q&A
Delphi Programming Q&A
[15453] TCategoryPanelGroup에서 동적 패널 생성시 깜빡거림에 대해 문의드립니다.
박태성 [tspark92] 1986 읽음    2015-04-07 11:10
고객의 방문기록을 화면에 보여주는 루틴을 만들고 있습니다.
방문일자별로 필요한 내용에 ListView, richedit등의 컴포넌트로 표현하기 위해
TCategoryPanelGroup을 이행해서 해당일자별로 동적으로 패널을 생성하게 했습니다.

procedure TfrTreatList.LoadTreatList(var AList: TValueList);
var
  newPanel: TCategoryPanel;
  Loop : integer;
begin
  pnlgrTreat.Visible := False;
  for Loop := 0 to AList.Count-1 do
  begin
    newPanel := pnlgrTreat.CreatePanel(self) as TCategoryPanel;
    NewPanel.Caption := AList.Strings[Loop];
    newPanel.Tag := Integer(AList.Objects[Loop]);
    newPanel.Height := 350;
    newPanel.Collapsed := True;
    newPanel.OnExpand := CategoryPanelExpand;
  end;
  pnlgrTreat.Visible := True;
end;

1. 여기서 문제점이 동적으로 패널을 생성하니 패널이 생성될때마다 화면이 갱신되어서 깜빡임이 심하네요
그래서 pnlgrTreat.Visible := False; 구문을 넣어봤는데 그래도 패널그룹의 스크롤바는 여전히 보이면서
계속 깜빡이면서 생성됩니다. 다른 그리드나 리스트뷰 컴포넌트에 보면 BeginUpdate, EndUpdate같은
함수를 지원해줘서 이런 현상이 없었는데 TCateogryPanelGroup은 이런 함수가 없는것 같네요.
어떻게하며 화면이 깜빡이지 않고 패널들을 동적으로 생성할 수 있을까요?

2. 또 하나 질문하고 싶은거는 저렇게 동적으로 패널을 생성하면 화면이 마지막에 생성한 패널이 보여지는데
당연히 TCateogryPanelGroup의 스크롤바도 제일 아래로 내려와 있고요.
전 패널목록에서 제일윗부분이 화면이 보여지게 하고 싶은데 어떻게 해야 할지 모르겠습니다.
패널 생성이 끝나면
pnlgrTreat.HorzScrollBar.Position := 0;
위처럼 코드를 넣어봐도 그대로 제일 아래부분이 보이네요.
해결방안이 없을까요?

작업환경은 Win7 32bit + Delphi XE3 입니다.

+ -

관련 글 리스트
15453 TCategoryPanelGroup에서 동적 패널 생성시 깜빡거림에 대해 문의드립니다. 박태성 1986 2015/04/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.