Еще нет подгонки содержимого ListView под размер окна... 
Нашел решение :
IconOptions.AutoArrange = True и ScrollBars = ssAutoVertical  
Но вылезла новая "проблема" Выделение элемента совсем не то что нужно для галереи ...   
Старое "прибил" так :
- Код: Выделить всё
- procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
 Selected: Boolean);
 begin
 Item.Selected:=False;
 end;
 
 Но нужна "рамка вокруг миниатюры".
Добавлено спустя 1 час 15 минут 56 секунд:- Код: Выделить всё
- const
 LVM_SETEXTENDEDLISTVIEWSTYLE = $1036;
 LVS_EX_BORDERSELECT = $8000;
 ...
 SendMessage(ListView.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_BORDERSELECT)
 
Хм ! Как-то  это странно (Вроде расхожая фишка а приходится через WinAPI лезть  ) ... но работает .
Добавлено спустя 17 часов 39 минут 54 секунды:Всю ночь  провозился пытаясь сменить цвета выделения выбранного элемента....
Брр...   И ведь в дельфи  работает! ( например так  .)
SysListView32.zipА в лазарусе хоть тресни нет .
Добавлено спустя 2 часа 7 минут 41 секунду:"Муки творчества" блин ! 

- Код: Выделить всё
-   procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
 Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
 var DefaultDraw: Boolean);
 Var  A_Rect: TRect;
 begin
 case (Stage) of
 cdPrePaint  : begin
 if cdsSelected in State then
 with Sender.Canvas do begin
 Item.Selected := False;
 font.Color:= clWhite;
 Brush.Color := clRed;
 Pen.Color:=ClGreen;
 end;
 end;
 cdPostPaint : begin
 if cdsSelected in State then
 with Sender.Canvas do begin
 Item.Selected := True;
 A_Rect:=Item.DisplayRect(drSelectBounds);
 Pen.Color:=ClRed;
 Pen.Width:=2;
 Brush.Color :=ClGreen;
 
 Frame(A_Rect.Left+1,A_Rect.Top+1,
 A_Rect.Right-1,A_Rect.Bottom);
 
 Brush.Color := clWindow;
 Pen.Color:=  clWindow;
 end;
 end;
 end;
 end;
 
Зы
Совсем чисто "без рисования" не обошлось ( рамку рисую сам ), но в принципе это самый простой  и по идее надежный  вариант из всех опробованных.