Q&A

  • TImageList 에 이미지를 그려 넣은후 ListView 에 표현 하려는데...
안녕하세요

제목과 같이 ImageList 에 이미지를 그러 넣은후에 Listview 에
표현하려 하는데 550개 정도 들어가고 나서는 더이상 ImageList 에
이미지가 추가되지 않더군요 ImageList 에 들어가는 이미지의
크기에 따라 들어가는 장수에 변화가 있는걸 보면 ImageList 에는
용량 제한이 있는것 같습니다. 해당 용량을 좀더 크게 잡거나
다른 방법으로 이 문제를 해결 하는게 가능 할까요?

아래는 간단히 테스트 하기 위한 예제 입니다.
ImageList 의 width=200, height=160 으로 ListView 의
LargeImage 에 연결하고 임의의 이미지를 그려서 600개를
넣는 단순 작업 입니다.
테스트 해보면 550개 정도 다음부턴 이미지가 추가되지 않는
것을 확인 할 수 있답니다.


///////////////////////////////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var
  i, n: integer;
  b: TBitmap;
begin
  for i:=0 to 600 do
  begin
    b := TBitmap.Create;
    b.Width := 200;
    b.Height := 160;
    b.Canvas.Brush.Color := clBlue;
    b.Canvas.Rectangle(0,0,200,160);
    b.Canvas.Brush.Color := clRed;
    b.Canvas.Rectangle(0,0,30,30);

    n := ImageList_Add(ImageList1.Handle, b.Handle, 0);

    with ListView1.Items.Add do
    begin
      Caption := IntToStr(ListView1.Items.Count);
      ImageIndex := n;
    end;

    b.Free;
  end;
end;
///////////////////////////////////////////////////////////////////////
3  COMMENTS
  • Profile
    전상현 2006.02.15 03:34
    여러 컴퓨터에서 확인해 봤는데 여전히 안되는데 이상하군요...
    유닛 첨부 했씀다 600개 이상 이미지를 추가해 보세요 600번
    넘어가면서 부터 이미지들이 추가 안되요


  • Profile
    최도선 2006.02.17 17:24
    Jedi Component Library에 있는 JvImageList 나 다른 3rd Party Component에 있는 ImageList 를 사용해 보세요. 아마도 델파이에 TImageList의 문제인 것 같습니다.

    그럼.. 즐거운 하루되세요 ^^;

  • Profile
    도끼로이마까 2006.02.14 23:23

    저는 잘되는데요 --