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

Вниз

Поиск по неполному названию в TlistBox   Найти похожие ветки 

 
CodeMaster ©   (2009-05-24 10:57) [0]

Здраствуйте, У меня к вам есть небольшой вопрос, а именно как произвести поиск по неполному названию в TListBox.

На DelphiWorld есть статейка:
 ListBox1.perform(lb_selectstring,-1,longint(pchar(Edit1.text )));
Эта функция ищет только по полному названию, а мне например нужно:

В ListBox содержится 5 элементов

Маша
Сергей
Василий
Евгений
Кирилл

При вводе в Edit строки "аша", поиск должен найти Маша,
если "илл" то соответсвенно Кирилл. Надеюсь всё понятно разъяснил. . Заранее спасибо =)


 
Palladin ©   (2009-05-24 10:59) [1]

Pos + F1


 
dr_creigan   (2009-05-24 11:07) [2]

сделай ручками: 1 цикл и Pos. Я так уже делал, только вот задача была посложнее: список содержал элементы и еще информацию к ним в чередующемся виде.

Еще 1 совет: нулевую строчку не используй, то есть в ней должно быть написано, что угодно, а вся основная инфа ниже.


 
CodeMaster ©   (2009-05-24 11:10) [3]

А можно как-то поконкретней, а то я не пойму что значит Pos + F1.


 
dr_creigan   (2009-05-24 11:20) [4]

F1 -справка

Pos - основная функция, которой предлагают пользоваться.
типа такого будет: String h="123456";
Integer k;//я паскаль плохо знаю, поэтому извиняй за ошибки
k:=h.Pos("23");

Я бы вот как сделал в твоем случае(пишу на с++ - переведешь на делфи сам):
String j=Edit1->Text, k;
for(int i=0;i<ListBox1->Items->Count;i++){
k=ListBox1->Items->Strings[i];//вроде так))))
if(k.Pos("j")!=0){
//делаем то, что тебе нужно. например, можно создать динамический массив
//в самом начале и уже туда записывать значения позиций строчек, ну или
//еще что-нибудь
}
}


 
Palladin ©   (2009-05-24 11:21) [5]

Это значит зайди в редактор (надеюсь тебе это слово знакомо) Делфи, который находится в IDE (IDE это такая штучка, которая появляется перед тобой когда ты запускаешь Делфи). Поставь курсор редактирования в любое место, далее нажми последовательно следующие клавиши "P" ("З"э русская, 11 клавиша если считать слева на право в третьем если считать сверху ряду), "o" ("щ" русская, 10 клавиша если считать слева на право в третьем если считать сверху ряду, рядышком с предыдущей ), "s" ("ы" русская, третья клавиша если считать слева на право в четвертом если считать сверху ряду). После того как этот подвиг будет совершон, останется не менее сложная часть, найти клавишу которая подписана сразу ДВУМЯ значками, первый значек "F", он может показатся тебе незнакомым, но поверь мне, он есть. И второй значек на нем это циферка "1", клавиша эта вторая если считать слева направо в первом если считать сверху ряду. Если ты с этим справишься перед тобой возникнет куча непонятных значков, их дешифрация и восприятие уже зависит от твоего интеллекта и жажды познания.


 
dr_creigan   (2009-05-24 11:24) [6]

Palladin, хорош над новичками стебаться=))))))))))))))))))


 
CodeMaster ©   (2009-05-24 11:32) [7]


> Palladin ©   (24.05.09 11:21) [5]
>
> Это значит зайди в редактор (надеюсь тебе это слово знакомо)
> Делфи, который находится в IDE (IDE это такая штучка, которая
> появляется перед тобой когда ты запускаешь Делфи). Поставь
> курсор редактирования в любое место, далее нажми последовательно
> следующие клавиши "P" ("З"э русская, 11 клавиша если считать
> слева на право в третьем если считать сверху ряду), "o"
> ("щ" русская, 10 клавиша если считать слева на право в третьем
> если считать сверху ряду, рядышком с предыдущей ), "s" ("ы"
> русская, третья клавиша если считать слева на право в четвертом
> если считать сверху ряду). После того как этот подвиг будет
> совершон, останется не менее сложная часть, найти клавишу
> которая подписана сразу ДВУМЯ значками, первый значек "F",
>  он может показатся тебе незнакомым, но поверь мне, он есть.
>  И второй значек на нем это циферка "1", клавиша эта вторая
> если считать слева направо в первом если считать сверху
> ряду. Если ты с этим справишься перед тобой возникнет куча
> непонятных значков, их дешифрация и восприятие уже зависит
> от твоего интеллекта и жажды познания.


Конечно спасибо за такие подробности, но можно было и не так подробно.


> dr_creigan   (24.05.09 11:24) [6]
>
> Palladin, хорош над новичками стебаться=))))))))))))))))))
>

6 лет на Delphi работаю.


 
dr_creigan   (2009-05-24 11:34) [8]

прикинь, у меня такие же завихрени бывают)))
>6 лет на Delphi работаю.
пишешь-пишешь, думаешь, что отлично язык знаешь, а тут на тебе....
с портами случаем работать не умеешь?


 
CodeMaster ©   (2009-05-24 11:36) [9]


> dr_creigan   (24.05.09 11:34) [8]
>
> прикинь, у меня такие же завихрени бывают)))
> >6 лет на Delphi работаю.
> пишешь-пишешь, думаешь, что отлично язык знаешь, а тут на
> тебе....
> с портами случаем работать не умеешь?


Нет не умею, я только работаю со звуком.


 
CodeMaster ©   (2009-05-24 11:38) [10]


> dr_creigan   (24.05.09 11:20) [4]
>
> F1 -справка
>
> Pos - основная функция, которой предлагают пользоваться.
>
> типа такого будет: String h="123456";
> Integer k;//я паскаль плохо знаю, поэтому извиняй за ошибки
> k:=h.Pos("23");
>
> Я бы вот как сделал в твоем случае(пишу на с++ - переведешь
> на делфи сам):
> String j=Edit1->Text, k;
> for(int i=0;i<ListBox1->Items->Count;i++){
> k=ListBox1->Items->Strings[i];//вроде так))))
> if(k.Pos("j")!=0){
> //делаем то, что тебе нужно. например, можно создать динамический
> массив
> //в самом начале и уже туда записывать значения позиций
> строчек, ну или
> //еще что-нибудь
> }
> }
>


Спасибо за разъяснение, тут впринципе всё предельно понятно - только есть одна неточность ListBox1->Items->Strings[i] можно записать как ListBox1->Items[i] =)


 
dr_creigan   (2009-05-24 12:21) [11]

это не неточность)), а 1 из вариантов написания))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.003 c
15-1242376187
oldman
2009-05-15 12:29
2009.07.19
При загрузке ХР не может загрузить "текущий профиль пользователя"


2-1243168640
Petro
2009-05-24 16:37
2009.07.19
SpeedButton+ Richedit


15-1242388304
Palladin
2009-05-15 15:51
2009.07.19
Враппер к WinHTTP.dll


2-1243424167
Галинка
2009-05-27 15:36
2009.07.19
Опаздывает дата


2-1243334951
bagos
2009-05-26 14:49
2009.07.19
smtp клиент





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