powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ListView и позиционирование на нужную строку...
6 сообщений из 6, страница 1 из 1
ListView и позиционирование на нужную строку...
    #32188480
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, у меня такая проблема, происходит поиск по ListView, находится и выделяется строка (ListItem), а как потом её отобразить (проскролить список?) в видимой части списка?
У меня сейчас делается вот так:
и не работает..

for i:=0 to ListProd.Items.Count -1 do
begin

if AnsiPos(UpperCase(s),UpperCase(RECDATA(ListProd.Items .Data).PROD))>0 then
begin
ListProd.Selected:=ListProd.Items;
ListProd.ItemFocused:=ListProd.Items;
end;
end;
...
Рейтинг: 0 / 0
ListView и позиционирование на нужную строку...
    #32188492
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чёто не совсем понял, может это?
Код: plaintext
1.
2.
3.
4.
5.
idx := ListBox1.Items.IndexOf('3');
if idx > - 1  then
    ListBox1.Selected[idx]:=true
else
   Application.MessageBox('Íåíàøëëî!!!', '', MB_OK+MB_ICONERROR);
...
Рейтинг: 0 / 0
ListView и позиционирование на нужную строку...
    #32188494
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у тебя просто выберет строку.. А если она не в область видимости списка, то она не отобразится.. Мой код примерно тоже самое делает..
...
Рейтинг: 0 / 0
ListView и позиционирование на нужную строку...
    #32188496
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому интересно, то я нашел -))
ListProd.Items .makevisible(true);
...
Рейтинг: 0 / 0
ListView и позиционирование на нужную строку...
    #32188736
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм...
Буквально сегодня ночью я тоже с этим самым бился,
Значит какая задача у меня была
Сделать интерфейс напоминающий 1С:
нажал кнопку с тремя точками появилось окошко выбора какого то параметра
там есть только листвью и едит (Edit.Enable:=false;)
В обработчике события ListView.OnKeyPress проверяю является ли нажатая клавиша русской буквой или цифрой
Код: plaintext
1.
2.
3.
4.
Key in['А'..'Я']
or
Key in['я'..'я']
or
Key in['0'..'9']

и если условие срабатывает, то
Edit.Text:=Edit.Text+Key;
если нажат BackSpace то
Код: plaintext
Edit.Text:=Copy(Edit.Text, 1 ,Length(Edit.Text)- 1 )

и тут же вызываю обработчик события Edit.OnChange
в обработчике Edit.OnChange твой алгоритм, немного видоизмененный
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ListProd.Selected:=nil;
ListProd.ItemFocused:=nil;

for i:= 0  to ListProd.Items.Count - 1  do 
begin 

if AnsiPos(UpperCase(s),UpperCase(RECDATA(ListProd.Items.Data).PROD))> 0  then 
begin 
ListProd.Selected:=ListProd.Items; 
ListProd.ItemFocused:=ListProd.Items; 
ListProd.ItemFocused.makevisible(true);
end; 
end;


в субботу перерыл хелп и нашел этот метод MakeVisible .
Вроде все пучком, только какой то глюк закрылся в мой алгоритм (буквально побуквенно совпадающий с твоим):
сравнение работает неустойчиво, в отладчике вижу что сравнение прошло удачно, но после четвертой введенной буквы выделяется не тот итем, прикольно...
а итеминдекс тот же
...
Рейтинг: 0 / 0
ListView и позиционирование на нужную строку...
    #32188743
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опаньки, сорри уважаемый Ден!
Нашел ошибку у себя в коде: сравнение не прокатывает потому, что я использую Pos, a не AnsiPos

Не сразу увидел твой предыдущий постинг
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ListView и позиционирование на нужную строку...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]