![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Различие регистра букв в 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]Это как, по коду ничего этого не видно, а как добавлялись эти слова?