Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Различие регистра букв в TCheckListBox


Anthony ©   (2011-08-06 12:42:00) 

В конроле ListBox типа TCheckListBox находятся 2 слова: "земля" и "Земля".
ListBox.IndexOf('Земля') даёт значение 0.
ListBox.IndexOf(земля') тоже даёт значение 0.
Подскажите, как сделать, чтобы ListBox различал регистр?..


sniknik   (2011-08-08 09:40:00) [1]

> Ну, для какой-то надо... к примеру, база паролей.
тот логичнее был бы выбор (если его давать, перед логином), т.е. TComboBox, а не TCheckListBox. или он будет пытаться логинится по всем "чекнутым"? т.е. знаю пароль но не знаю от какого юзера поэтому отмечу все...

не, все-таки что-то странное реализуется.


Kilkennycat   (2011-08-08 01:23:00) [2]

я бы сбацал наследника и перекрыл нужные методы, это проще.


Kilkennycat   (2011-08-08 01:22:00) [3]

Ну, для какой-то надо... к примеру, база паролей. на самом деле, это все-таки правильно. никсы не зря делают различие.


Германн   (2011-08-08 00:26:00) [4]

Я вообще не понимаю для какой реальной программы/задачи нужно иметь в листбоксе одинаковые слова, но отличающиеся только регистром символов.


sniknik   (2011-08-07 22:30:00) [5]

именно. и при заданном условии должно найти первый... а говорит, что также работает, т.е. 0 нашел.

не совсем как нужно, но найдя, и сравнив если оно не точное повторяешь поиск с этого элемента до "полного удовлетворения".


Dimka Maslov   (2011-08-07 22:25:00) [6]

Замечу, что списки нумеруются с нуля и значение 0 говорит о том, что элемент найден и имеет индекс равный 0.


sniknik   (2011-08-07 22:05:00) [7]

> код с LB_FINDSTRINGEXACT
тут не главное, главное 0 после него, а так естественно также, ведь взято из функции IndexOf, и исправлено.
и еще есть вероятность, что в "верних" версиях дельфи с юникодом, требуется под них исправить.


Anthony   (2011-08-07 19:58:00) [8]

sniknik, ваш код с LB_FINDSTRINGEXACT работает абсолютно также, как и метод IndexOf.
Я написал функцию, где в цикле проверяется каждый элемент ListBox и сравнивается с искомой строкой. Несложно. Просто я думал, что у этого компонента есть какие-то свои родные нстройки насчёт различия регистра...
Спасибо всем, кто написал.


sniknik   (2011-08-06 23:59:00) [9]

var
 S: string;
 i: integer;
begin
 S:= 'Земля';
 i:= SendMessage(ListBox.Handle, LB_FINDSTRINGEXACT, 0, LongInt(PChar(S)));
end;


Anatoly Podgoretsky   (2011-08-06 18:09:00) [10]

Это как, по коду ничего этого не видно, а как добавлялись эти слова?


Наверх

Титульная страница Поиск, карта сайта Написать письмо