title: Delphi XE2: TListView as tile view not working in Windows XP
body: <p>I have a code that use LV_VIEW_TILE on TListView control:</p>
  
  <pre><code>uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics,
    Controls, Forms, Dialogs, ComCtrls, CommCtrl,
    StdCtrls;
  
  procedure TileView(aListView: TListView);
  var
    ti: TLVTILEINFO;
    Order: array of Integer;
    tvi: TLVTILEVIEWINFO;
    i: integer;
  begin
    ListView_SetView(aListView.Handle, LV_VIEW_TILE);
  
    for i := 0 to aListView.Items.Count - 1 do begin
      FillChar(ti, SizeOf(ti), 0);
      ti.cbSize := SizeOf(ti);
      // First item
      ti.iItem := i;
      // Specifying the order for three columns
      ti.cColumns := 4;
      // Array initialization
      SetLength(order, ti.cColumns);
      // The order is 2nd, 3rd and 4th columns
      order[0] := 1;
      order[1] := 2;
      order[2] := 3;
      order[3] := 4;
      ti.puColumns := PUINT(order);
      ListView_SetTileInfo(aListView.Handle, ti);
    end;
  
    tvi.cbSize := Sizeof(tvi);
    tvi.dwMask := LVTVIM_COLUMNS;
    // Requesting space to draw the caption + 3 subitems
    tvi.cLines := aListView.Columns.Count;
    ListView_SetTileViewInfo(aListView.Handle, tvi);
  end;
  
  procedure TForm3.FormCreate(Sender: TObject);
  var V: TListView;
      A: TListItem;
  begin
    V := TListView.Create(Self);
    V.Parent := Self;
    V.Align := alClient;
  
    V.Columns.Add;
  
    A := V.Items.Add;
    A.Caption := 'Item A';
    A.SubItems.Add('Sub A');
  
    A := V.Items.Add;
    A.Caption := 'Item B';
    A.SubItems.Add('Sub B');
  
    TileView(V);
  end;
  </code></pre>
  
  <p>Compile and build the code with Delphi 2007 and run the application in Windows XP, it shows:</p>
  
  <p><img src="https://i.stack.imgur.com/hniEv.png" alt="enter image description here"></p>
  
  <p>Compile the same code with Delphi XE2 and run in Windows XP, it shows:</p>
  
  <p><img src="https://i.stack.imgur.com/EMlzX.png" alt="enter image description here"></p>
  
  <p>The subitems doesn't shows when compile in Delphi XE2.</p>
  
  <p>Both Delphi 2007/XE2 applications shows the tiled view subitems in Windows 7.</p>
  
  <p>I have tried embed manifest in the application's resource or as external files:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
  
  &lt;assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"&gt;
    &lt;assemblyIdentity
    type="win32"
    name="DelphiApplication"
    version="1.0.0.0"
    processorArchitecture="*"/&gt;
    &lt;dependency&gt;
    &lt;dependentAssembly&gt;
      &lt;assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0"
      publicKeyToken="6595b64144ccf1df"
      language="*"
      processorArchitecture="*"/&gt;
    &lt;/dependentAssembly&gt;
    &lt;/dependency&gt;
    &lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"&gt;
    &lt;security&gt;
      &lt;requestedPrivileges&gt;
      &lt;requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/&gt;
      &lt;/requestedPrivileges&gt;
    &lt;/security&gt;
    &lt;/trustInfo&gt;
  &lt;/assembly&gt;
  </code></pre>
  
  <p>Any ideas why Delphi XE2 compiled application doesn't show tiled view in Windows XP?</p>