Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2015, 16:35   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию ListView запретить изминение Caption

Как в ListView запретить изменение Caption? Т.е. когда кликнишь дважды по Caption его можно изменить, как запретить это?
nibufep вне форума Ответить с цитированием
Старый 13.10.2015, 16:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пробовал поставить свойство ReadOnly?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2015, 17:38   #3
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Пробовал поставить свойство ReadOnly?
Раньше у меня это свойство с listviev почему-то не работало, сейчас решил еще раз попробовать, и о чудо)
А еще тогда 1 вопрос по listviev.

Как можно сделать поиск по listviev.caption, искать нужно вот так:

Например имеется caption: programmersforum, я начинаю вводить в edit prog и он ищет по всем caption такое вхождение и скролит listviev к этой строке. Как такое можно сделать?
nibufep вне форума Ответить с цитированием
Старый 13.10.2015, 18:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как можно сделать поиск по listviev.caption
В цикле конечно )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2015, 19:32   #5
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В цикле конечно )
А по другому не как? А если строк будет оч много, не будет ли зависать?
nibufep вне форума Ответить с цитированием
Старый 13.10.2015, 20:10   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А как себе представляешь по другому?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.10.2015, 20:32   #7
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Код:
procedure TForm.Edit1Change(Sender: TObject);
var
rct:TRECT;
i:integer;
const LVM_GETITEMRECT=4110;  LVIR_BOUNDS=0;
begin
for i:=0 to ListView1.Items.Count-1  do
begin
If pos(Edit1.text, ListView1.Items[i].Caption)>0 then begin
rct.Left:=0;
SendMessage(ListView1.Handle,LVM_GETITEMRECT,0,integer(@rct));
ListView1.Scroll(0,(i-ListView1.TopItem.Index)*(rct.Bottom-rct.Top));
break;
end;
end;
end;
Сделал вот так. Правильно или можно как то лучше сделать?
nibufep вне форума Ответить с цитированием
Старый 13.10.2015, 21:01   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну если хочешь еще регистронезависимый поиск, вместо pos что-то наподобие AnsiSameText
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.10.2015, 21:04   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Запусти - что получится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2015, 21:21   #10
Dmitry33RU
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ну если хочешь еще регистронезависимый поиск, вместо pos что-то наподобие AnsiSameText
Функция AnsiSameText возвращает True, если строки S1 и S2 идентичны.

В таком случае поиск по вхождениям работать не будет. Лучше уж преобразовывать обе строки в 1 регистр и потом уже сверять.

Код:
pos(AnsiLowerCase(Edit1.text), AnsiLowerCase(ListView1.Items[i].Caption))>0
Dmitry33RU вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CheckBox в Caption Column ListView Shouldercannon Общие вопросы Delphi 3 22.12.2013 12:52
Редактирование SubItems у ListView как у TListItem.Caption Человек_Борща Компоненты Delphi 6 10.01.2013 03:21
Переименовать Caption в ListView casio23 Общие вопросы Delphi 3 12.02.2011 14:33
Получить Caption выбранного итема в ListView fezilk25 Общие вопросы Delphi 2 05.02.2011 22:59
Как в ListView.Column[i].Caption отобразить ASCII символы с кодом меньше 32? Angel_CJ Компоненты Delphi 8 27.04.2008 13:13