Форум: "Начинающим";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизКак пролистать ListView до нужной позиции? Найти похожие ветки
← →
tytus © (2007-03-03 12:21) [0]BoДоброго дня Всем! Имеется ListView (он же LV1) со сотилем vsReport. В поле Edit ввожу текст, и в обработчику пишу:
procedure TRepParamsFm.Edit1Change(Sender: TObject);
var
LF:LV_FINDINFO;
ps:PChar;
len:integer;
res:integer;
begin
len:=Length(Trim(Edit1.Text));
if len=0 then exit;
len:=len+1;
GetMem(ps,len);
StrPCopy(ps,Edit1.Text);
LF.psz:=ps;
LF.flags:=LVFI_PARTIAL or LVFI_STRING;
res:=SendMessage(LV1.Handle,LVM_FINDITEM,-1,Integer(@LF));
FreeMem(ps);
SB1.Panels[0].Text:=IntToStr(Res);
end;
Вот такой простой поиск нужного элемента по строке. Как теперь мне пролистать ListView, чтобы был виден найденный элемент (его индекс находится в переменной res), как это поисходит в ListBox-e, при посылке LB_FINDSTRING????
← →
Loginov Dmitry © (2007-03-03 12:40) [1]ItemIndex
Focused
← →
tytus © (2007-03-03 12:55) [2]>Loginov Dmitry © (03.03.07 12:40) [1]
LV1.ItemIndex:=res;
LV1.focused;
не помогает, и не прокручивает список.
← →
MBo © (2007-03-03 13:05) [3]MakeVisible
← →
REA (2007-03-03 13:07) [4]Item.MakeVisible
← →
tytus © (2007-03-03 13:28) [5]MBo, REA,Спасибо.
А как сделать, чтобы элемент списка был выделенным, но сохранилась возможность дальнейшего ввода текста в Edit-e?
LV1.ItemIndex:=res;
LV1.Items[res].MakeVisible(true);
Затем, чтобы данный элемент стал выделенным, нужно выполнить
LV1.SetFocus;
И все - эдит теряет фокус ввода. Ежели после LV1.SetFocus; передать фокус ввода эдиту - то элемент списка перестает бытьт выделенным. Как быть...???
← →
REA (2007-03-03 16:27) [6]HideSelection := False
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.069 c