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
[41526] Re:Re:답변 감사합니다.
코스모스 [] 765 읽음    2005-08-18 20:02
감사합니다.
윈도우가 Device(장치)에 저장하고 있지 않는다면.. 어떻게든 찾을 수 있겠네요.
정확히. 두번째 경우입니다. 이 구조를 다시 만들기 위한 연산 시간이 느립니다.
포럼 강좌에 있는 사용자 함수중...
=================================================================
  WRgns=NULL;
  for ( int j=0; j <yys; j ++ )   // 일일이 점 다 뒤져가며 찾으니.. 느림.. ㅡㅡ+
    {
    int RStart = -1;   int REnd = -1;
    for ( int i = 0; i <xxs; i ++ ) {
      TColor TheColor = ((TColor )(tag00->Canvas->Pixels[i][j] & 0x00FFFFFF));
      if (((TheColor!=clWhite)||(i==xxs-1))&&(RStart==-1))RStart = i;
      if (((TheColor==clWhite)||(i==xxs-1))&&(RStart!=-1))
        { HRGN Aux; REnd = i - 1;
          if (WRgns==0)WRgns=CreateRectRgn(RStart,j,REnd+1,j+1 );  // <---- 한줄한줄 추가.
           else { Aux = CreateRectRgn (RStart,j,REnd+1,j+1);
                    CombineRgn( WRgns,WRgns,Aux,RGN_OR);
                    DeleteObject ( Aux ); }
          RStart = -1;
       }}}

=================================================================
이러합니다. 한줄한줄 더하는 방식입니다.
복잡한 모양의 폼 형태를 매번 들어갈때, 연산을 수행하니.. 길게는 10초 까지도 지연이 됩니다.
연산을 한번하고, 그 정보를 화일로 저장하여,(Maker를 만든후)
실제 프로그램에선 연산없이.. 알맹이(이미 연산된 결과)만 바로 적용해서, 최초 실행 속도를 올리려고 했습니다.

영인님 덕분에 포기하지 않고 계속 찾아 보려합니다.

감사합니다.



유영인  Cuperido 님이 쓰신 글 :
: CreateRectRgn, CombineRgn 를 사용해서 적용해본 적이 없어서
: 확실하게는 잘 모르겠습니다. 다만, 컴포넌트 및 폼 사이즈를 정하는 것이라면
: 각 컴포넌트의 WriteComponent 메소드를 이용해서 똑같이 파일로 저장할 수 있고
: 나중에 런타임시에 불러올 수 있습니다.
:
: HRGN 을 단순이 저장시키시려면, 스트럭쳐를 파일로 저장시킨 후 런타임시에
: 다시 불러오면 될 것 같은데요,
:
: 정확히 이 구조를 저장하셔서 런타임시에 다시 배치하실때 그 배치가 느리다는건지,
: 아니면, 이 구조를 다시 만들기 위한 연산 시간이 느린건지 그것이 궁금하네요.
:
: 첫번째의 경우라면 방법을 찾기는 어려우실 것 같고, 두번째의 경우에는 위에서
: 말씀드린 방법대로 하시면 될 것 같습니다.
:
:
: cuperido
:
:
: 코스모스 님이 쓰신 글 :
: : CreateRectRgn,CombineRgn 등의 함수로 영역을 만들었습니다.
: :
: : 이 영역의 버퍼를 안다면... Binary File로 저장 했으면 합니다.
: :
: : 자세한 코딩이 아니더라도.. 윈도우가 이 영역을 기억하고 있는지를 알고 싶습니다.
: :
: : 복잡한 모양의 Region을 만들었다 하더라도. 매번 실행할때 재구성 해야 하므로 프로그램이 느려집니다.
: :
: : Region을 만드는 방법은 알고 있으니, 윈도우가 기억하는 영역이 있는지 알려 주십시요.
: :
: : 만약 있다면, 열심히 찾아 보려합니다.
: :
: : 만약 없다면, 찾아 볼 필요도 없겠지요.
: :
: : 부탁드립니다.

+ -

관련 글 리스트
41499 [질문] Region 영역을 저장할 수 있나요? 코스모스 717 2005/08/18
41507     Re:[질문] Region 영역을 저장할 수 있나요? 유영인 Cuperido 802 2005/08/18
41526         Re:Re:답변 감사합니다. 코스모스 765 2005/08/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.