Q&A

  • Timage를 동적으로 500 개를 생성했더니..
아고~ 고수행님들 내좀 살리주이소
Timage를 동적으로 500 개를 생성할라카니까.
속도가 뚝~ 떨어져버리네예
늙은 초보라서인지 억수로 쌔빠지고 있습니더
다 같은 이미지인데 한방에 해결 할라카이 안되네예
이미지를 500개 불러올려니 시간이 걸리는건지 아니면
500개의 오브젝트를 만들려니 시간이 걸리는건지
바빠죽것는데 한수 갤마주이소.
<!--CodeS-->
   For j := 1 to 500 Do
       Begin
       coin := Timage.Create(Self);
       with coin do
          begin
          Parent := Frm_main;
          Name := 'Coin'+intTostr(V_coins);
          Width := 30;
          height := 30;
          Top := mtop+i;
          Left := mleft+i;
          Visible := True;
          Picture.LoadFromFile('..\image\cp.gif');
          end;
       V_coin := V_coin + 1;
       end;
<!--CodeS-->
3  COMMENTS
  • Profile
    늙은래머 2006.08.27 22:41
    ^-^*
  • Profile
    하얀까마귀 2006.08.25 21:24
    만약 이미지가 각기 다른 500 개라면 하드디스크로 부터 500개의 이미지를 불러오는 속도는 어쩔수 없겠죠.

    특별히 다르게 관리해주지 않는한에는요..

    하지만 만약 같은 이미지라면 당연히 하드디스크로부터는 한번만 불러오도록 하셔야 합니다...

    또한 TImage 라는 놈도 그냥 막쓰기엔 좀 부담스러운 놈이라고 생각하시면 될껍니다.. 자체적인 기능이 있어서 사용하긴 편하지만요 ( 정확히 어떤용도인지는 모르겟지만.. )

    일단 불러오는 불러오는 부분을 만드시던지 하시고 TImage를 사용하신다면 가급적 하나의 이미지콤포넌트에서 처리가되도록 하는것이 좋을듯 합니다.

    Bitblt 같은 함수로 그려주는방식이 더 좋을듯 한데 용도가 무엇인지 몰라 정확 말씀드리기 힘드네요..

  • Profile
    손희석 2006.08.25 18:10
    같은 이미지를 로딩 하는 것으로 보이는데요..
    이미지는 한번만 로드 하고 나머지는 Copy방식으로 처리하시는게 좋겠네요..
    파일을 500번 로딩하니 느릴수 밖에 없는 것으로 보입니다.
    즐코딩하세요..