Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

Поиск в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
14-1124963749
Василий Александрович
2005-08-25 13:55
2005.09.25
Обмен паспорта и дактилоскопия - законно ли это?


2-1124395838
Пантелеев Иван
2005-08-19 00:10
2005.09.25
Наличие файла


6-1117640758
Flame
2005-06-01 19:45
2005.09.25
idhttp


8-1115793414
Deka
2005-05-11 10:36
2005.09.25
Нет ли у кого описания для формата RAW фотоаппаратов Olympus?


6-1117785071
NonStop
2005-06-03 11:51
2005.09.25
передать с клиента на сервер картинку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский