Текущий архив: 2005.09.25;
Скачать: CL | DM;
ВнизПоиск в ListBox не работает из-за цифр? Найти похожие ветки
← →
kyn66 © (2005-08-30 14:40) [0]Уважаемые мастера, вопрос уже задавался, однако ответа не получено. У меня в Листбокс добавляются цифры вводимые в Edit1. Когда выполняю поиск
ListBox1.Perform(LB_SELECTSTRING, 0, LongInt(PChar(Edit1.text)))
, то при MultiSelect = True, если в листе присутствует 10, то 1 уже не добавляется после проверки. Если MultiSelect = False, то 10 проскакивает, хоть в листе 10 уже есть. Почему поиск не работает? Может потому, что я ввожу цифры?
← →
tesseract © (2005-08-30 22:34) [1]С точки зрения Tedit - всё символы, с точки зрения Longint - всё цифры.
подумай что ты реально добавляешь
← →
Наиль © (2005-08-30 22:37) [2]Только сейчас заметил (спасибо tesseract)
LongInt(PChar(Edit1.text))
- числовое значение адреса первой буквы текста
← →
Наиль © (2005-08-30 22:39) [3]Стормозил. Передать строку в Perform можно только таким способом.
← →
begin...end © (2005-08-31 08:41) [4]> kyn66 © (30.08.05 14:40)
> ListBox1.Perform(LB_SELECTSTRING, 0, LongInt(PChar(Edit1.text)))
ListBox1.Perform(LB_SELECTSTRING, -1, LongInt(PChar(Edit1.text)))
> то при MultiSelect = True...
MSDN: Do not use this message with a list box that has the LBS_MULTIPLESEL or the LBS_EXTENDEDSEL styles.
← →
kyn66 © (2005-08-31 11:51) [5]>> begin...end
Насчет -1 я в курсе, уже исправил, но это не столько важно в данной ситуации. Меня угнетает поиск в принципе. А что означает сия строка, штось не допру.. Do not use this message with a list box that has the LBS_MULTIPLESEL or the LBS_EXTENDEDSEL styles Т.е. MultiSelect нельзя ставить True? Так каой выход?. Сечас делаю проверку через таблицу в памяти, но не хотелось-бы прогу раздувать, подвешивая лишние компоненты. 8-(
>> LongInt(PChar(Edit1.text)) - числовое значение адреса первой буквы текста
Так ка-же тогда искать на полное совпадение?
← →
tesseract © (2005-08-31 13:43) [6]>>Так ка-же тогда искать на полное совпадение?
А просто PChar не подходит?
Тогда выбери нужный вариант
var temp:PCHAR;
new(temp);
temp:=PCHAR(edit.text);
ListBox1.Perform(LB_SELECTSTRING, -1, @temp);
ListBox1.Perform(LB_SELECTSTRING, -1, LongInt(@PChar(Edit1.text)))
← →
kyn66 © (2005-08-31 14:37) [7]>> а это уже проверено? Ща буду пробывать искать.
← →
begin...end © (2005-08-31 14:55) [8]> kyn66 © (31.08.05 11:51) [5]
> Т.е. MultiSelect нельзя ставить True?
MultiSelect можно ставить в True, но при этом не надо использовать LB_SELECTSTRING.
> Так ка-же тогда искать на полное совпадение?
ListBox.Items.IndexOf вызывать?
> tesseract © (31.08.05 13:43) [6]
Неверно.
← →
kyn66 © (2005-08-31 19:24) [9]>> Действительно не работает.
← →
tesseract © (2005-08-31 21:22) [10]Странно, должно работать.
Проблема в том что ты должен передать адрес PChar в функцию,
Попробуй (PChar(edit1.text)^) без longint.
← →
begin...end © (2005-08-31 21:32) [11]> tesseract © (31.08.05 21:22) [10]
> Странно, должно работать.
Не должно.
> ты должен передать адрес PChar в функцию
Не должен.
> Попробуй (PChar(edit1.text)^) без longint.
Не надо.
← →
Германн © (2005-09-01 01:03) [12]2 begin...end © (31.08.05 21:32) [11]
Ты не так ответил! :)
Надо бы было так:
> tesseract © (31.08.05 21:22) [10]
> Странно, должно
Не должно.
> ты должен
Не должен.
> Попробуй
Не надо.
Но тогда бы пришлось ставить копирайт. :(
← →
kyn66 © (2005-09-01 11:03) [13]>> begin...end
ListBox.Items.IndexOf - работает. Тогда и StringList должен с этим отработать правильно?
← →
begin...end © (2005-09-01 11:06) [14]> kyn66 © (01.09.05 11:03) [13]
> Тогда и StringList должен с этим отработать правильно?
Да. А причём здесь TStringList?
← →
Наиль © (2005-09-01 11:15) [15]У меня очущение, что отвечаю не в тему из-за фразы
> то 10 проскакивает, хоть в листе 10 уже есть
Но всё равно попробую.
Если нужно полное совпадение, то я делаю так:
ListBox1.ItemIndex:=ListBox1.Items.IndexOf("10");
← →
kyn66 © (2005-09-01 15:07) [16]Все нормально. После применения IndexOf (спасибо begin...end) все проверяет как надо.
Хочу попросить администратора форума присвоить begin...end степень магистра за неоднократные, грамотные, очень понятные ответы. СПАСИБО !
Страницы: 1 вся ветка
Текущий архив: 2005.09.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.086 c