Так вроде работает, но как то рукожопно помоему
Код:
var
rct:TRECT;
i,p: integer;
s:ShortString;
u:string;
const LVM_GETITEMRECT=4110; LVIR_BOUNDS=0;
begin
for i:=0 to Listview1.Items.Count-1 do
for p:=ListBox1.Items.Count-1 downto 0 do
begin
u:=ListBase.Items[p];
s:=Ansiuppercase(system.Copy(First.Listview1.Items[i].SubItems[0],0,length(u)));
if Ansiuppercase(u)=s then
begin
LVFORUM.Selected:=Listview1.Items[i];
rct.Left:=0;
SendMessage(Listview1.Handle,LVM_GETITEMRECT,0,integer(@rct));
Listview1.Scroll(0,(i-Listview1.TopItem.Index)*(rct.Bottom-rct.Top));
end;
end;
end;