Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.047 c
1-1125471494
Ксардас
2005-08-31 10:58
2005.09.25
Символ & перед именем файла


4-1122975929
webpauk
2005-08-02 13:45
2005.09.25
Иконка


3-1123590653
Русланка
2005-08-09 16:30
2005.09.25
При формировании запроса к Access как узнать


14-1125089881
ronyn
2005-08-27 00:58
2005.09.25
Атака


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский