Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизПоиск в listview Найти похожие ветки
← →
xGhost (2003-10-01 07:35) [0]В общем есть listview с неизвестным размером строк , приходят данные ( постоянно ) например listview имеет такой состав :
90.0.0.1
90.0.0.2
90.0.0.3
90.0.0.4
90.0.0.5
90.0.0.6
90.0.0.7
( поиск нужен только в 1 колонке например listview1.items[1].caption
и нужно найти приходящие данные в колонке .
Подскажите пожайлуста в каком направлении копать
← →
MBo (2003-10-01 07:52) [1]Копать в направлении Влево-Вверх.
Там будет кнопка F1, которая вызовет хелп, а в нем можно посмотреть на свойства и методы TListView
← →
xGhost (2003-10-01 08:31) [2]> MBo
ещё версии есть ?
← →
MBo (2003-10-01 08:46) [3]А зачем нужны другие версии, если в хелпе есть метод - прямой перевод на английский твоего вопроса?
← →
Song (2003-10-01 09:09) [4]TListView.FindCaption()
← →
xGhost (2003-10-01 09:11) [5]> MBo
Скажи как называетьмся раздел в справки а то я что то найти не могу :( уже 15 минут поиска и всё безнадёжно ...
← →
xGhost (2003-10-01 09:15) [6]> song
нашёл вот что : listview1.FindCaption(0,"11",true,true,true);
как это использовать ? не могу понять :( в справке нет !!!
по крайне мере я не нашёл
← →
Song (2003-10-01 09:19) [7]Чего там нет, всё там есть.
Returns a list view item, if any, with the specified caption.
function FindCaption(StartIndex: Integer; Value: string; Partial, Inclusive, Wrap: Boolean): TListItem
;
Description
Call FindCaption to search for a list view item labeled by the string specified as the Value parameter. If the Inclusive parameter is True, the list item specified by StartIndex is the first item checked. Otherwise, the search starts on the next item. If the Wrap parameter is True, the search continues at the top of the list if a match has not been found before reaching the bottom. FindCaption returns the first item with the Caption property equal to Value. If the Partial parameter is True, a Caption matches if it starts with the substring Value. If Partial is False, the Caption must match Value exactly. If no item is found, FindCaption returns nil.
← →
xGhost (2003-10-01 09:33) [8]> Song
Это то я понял ! я не понял как им пользоваться ! примера же нет ... :(
← →
Song (2003-10-01 09:34) [9]А зачем пример? Здесь непонятно написано?
← →
xGhost (2003-10-01 09:35) [10]например в переменую s:string заноситься значение номера строки с которой совпало занчения поиска
типа что то s:=ListView.FindCaption() - точно не знаю как написать параметры FindCaption
← →
xGhost (2003-10-01 09:54) [11]я понял что такое stsrtindex - это с какого элемента начинать поиск ! дальше не понял :(
что такое value ?
что такое Partial ?
что такое inclisive ?
что такое Wrap ?
я не понимаю почему вам так трудно привести пример ? я же не прошу писать мне код я хочу только понять как оно работает ! дальше я спралюсь сам
← →
xGhost (2003-10-01 10:07) [12]Посмотрел функцию
function TCustomListView.FindCaption(StartIndex: Integer; Value: string;
Partial, Inclusive, Wrap: Boolean): TListItem;
const
FullString: array[Boolean] of Integer = (0, LVFI_PARTIAL);
Wraps: array[Boolean] of Integer = (0, LVFI_WRAP);
var
Info: TLVFindInfo;
Index: Integer;
begin
with Info do
begin
flags := LVFI_STRING or FullString[Partial] or Wraps[Wrap];
psz := PChar(Value);
end;
if Inclusive then Dec(StartIndex);
Index := ListView_FindItem(Handle, StartIndex, Info);
if Index <> -1 then Result := Items[Index]
else Result := nil;
end;
В общем как я понял она должна возвращать номер строки
код ListView1.FindCaption(0,"90.0.0.1",true,true,true);
не хочет работать :(
← →
ZEE (2003-10-01 10:13) [13]
li:TListItem;
i:integer;
...
li:=ListView1.FindCaption(0,"90.0.0.1",true,true,true);
if li<>nil then i:=li.Index else i:=-1;
попробуй так
← →
xGhost (2003-10-01 10:23) [14]> ZEE
Спасибо ! но я уже нашёл !
http://delphiworld.narod.ru/base/tlistview_search_text.html
← →
xGhost (2003-10-01 10:58) [15]В общем всё понял ! только как искать значение в определёном столбце ? пробую так но функция всё равно ищёт в заголовке а не в указаном столбце
lvItem := form1.ListView1.Items[3].ListView.FindCaption(0,fromip,true,true,False);
← →
ZEE (2003-10-01 11:04) [16]
TListView.FindData()
← →
xGhost (2003-10-01 11:09) [17]> ZEE
Спасибо ещё раз Findata не очень подходит в моём случае :(
нашёл вот что
function FindListViewItem(lv: TListView; const S: string; column: Integer): TListItem;
var
i: Integer;
found: Boolean;
begin
Assert(Assigned(lv));
Assert((lv.viewstyle = vsReport) or (column = 0));
Assert(S <> "");
for i := 0 to lv.Items.Count - 1 do
begin
Result := lv.Items[i];
if column = 0 then
found := AnsiCompareText(Result.Caption, S) = 0
else if column > 0 then
found := AnsiCompareText(Result.SubItems[column - 1], S) = 0
else
found := False;
if found then
Exit;
end;
// No hit if we get here
Result := nil;
end;
работает ! Спасибо всем кто помог мне сегодня !!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c