Показать сообщение отдельно
  #14  
Старый 13.04.2013, 19:56
Corwin13 Corwin13 вне форума
Прохожий
 
Регистрация: 05.04.2013
Сообщения: 20
Версия Delphi: Enterprise 7.0
Репутация: 10
По умолчанию

Заработала такая процедура, правда корявенько
Код:
var
rct:TRECT;
i: integer;
s:ShortString;
const LVM_GETITEMRECT=4110;  LVIR_BOUNDS=0;
begin
for i:=0 to ListView1.Items.Count-1  do

begin
 s:=Ansiuppercase(system.Copy(form1.ListView1.Items[i].Caption,0,length(edit1.Text)));
 if Ansiuppercase(Edit1.text)=s then
 
begin
ListView1.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));


 Listview1.SetFocus;

Проблема в том, что при вводе первой буквы, находит файл и переходит на него, чтобы ввести следующую букву нужно
тыркать в edit. Понятно, что это из-за Listview1.SetFocus;, но без этого не происходит подсветки строки, как можно переделать, чтобы фокус оставался на edit`e, но при этом была подсветка найденной строки?
Ответить с цитированием