title: How can I change the icon/item size of a TListView in vsIcon ViewStyle?
body: <p>I need a control which can display thumbnails, for this I thought <code>TListView</code> with the <code>ViewStyle</code> set as <code>vsIcon</code> would be good enough for my purposes, unfortunately I realised that <code>TImageList</code> only supports images up to 256x256 in size. I know there are 3rd party solutions for this but I had hoped to work with the standard <code>TListView</code>.</p>
  
  <p>The images I need to display are approximately 348x480 so I cannot add them to a imagelist and assign it to a listview.</p>
  
  <p>So then I thought maybe I could store my images in a <code>TList</code> and then ownerdraw the listview, it is quite simple really just by using the <code>CustomDrawItem</code> method and working with the <code>Item.DisplayRect</code> to know exactly where to draw to, something like this (quick example):</p>
  
  <pre><code>procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
    Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
  var
    ItemRect: TRect;
    IconRect: TRect;
    CaptionRect: TRect;
  begin
    DefaultDraw := False;
  
    ItemRect := Item.DisplayRect(drBounds);
    IconRect := Item.DisplayRect(drIcon);
    CaptionRect := Item.DisplayRect(drLabel);
  
    with ListView1 do
    begin
      if cdsHot in State then
      begin
        Canvas.Brush.Style := bsSolid;
        Canvas.Brush.Color := clSkyBlue;
        Canvas.FillRect(ItemRect);
      end;
  
      if cdsSelected in State then
      begin
        Canvas.Brush.Style := bsSolid;
        Canvas.Brush.Color := clBlue;
        Canvas.FillRect(ItemRect);
      end;
  
      { my picture list is a custom control that holds bitmaps in a TList }
      if MyPictureList1.Items.Count &gt; 0 then
        MyPictureList1.Draw(Canvas, IconRect.Left + 348 div 4, IconRect.Top + 2, Item.ImageIndex);
  
     // commented out old code drawing from imagelist
     { if LargeImages &lt;&gt; nil then
      begin
        LargeImages.Draw(Canvas, IconRect.Left + LargeImages.Width div 4, 2, Item.ImageIndex);
      end;  }
  
      // draw text etc
    end;
  end;
  </code></pre>
  
  <p>The problem is how to change the size of each listview item? Typically setting the imagelist will change the size of the items, but I cannot use an imagelist because of the size limitations.</p>
  
  <p>I had tried <code>ListView_SetIconSpacing(ListView1.Handle, 348, 480);</code> which did not seem to do anything, I also tried inflating the local rects I assigned but no luck there.</p>
  
  <p>Is it possible to manually set the icon/item size of a listview to be greater than 256px and if so, how could I achieve this?</p>