Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.08.2007, 12:11
Аватар для X-rem
X-rem X-rem вне форума
Начинающий
 
Регистрация: 06.04.2007
Адрес: Питер
Сообщения: 119
Репутация: 10
Печаль Поиск

Народ нужна срочно помощь. Нужно реализовать поиск.
На форме есть один ListBox и один Edit.
В ListBox'e содержаться имена программ.
А в Edit нужно ввести название. Только надо чтобы можно было вводить не полностью.

Например в ListBox'e есть:
{
Borland Delphi 7
Acdsee
Visual Basic
}
Я набираю в Edit1 "Borland" и должен высветится "Borland Delphi 7"
т.е (ListBox1.ItemIndex:=at)
Сама функция поиска реализована но только никак не могу сделать чтобы не полностью можно было вводить.

Код:
 
//Edit1.OnChange
var
NeedString, str: String;
All, at, srtlen, nslen : Integer;
begin
  NeedString:=Form1.Edit1.Text;
  All := Form1.ListBox1.Items.Count;
  At := -1;
    repeat
      at:=at=1;
      str:=Form1.ListBox1.Items[at];
      strlen:=Length(str);
      nslen:=Length(NeedString);
      if strlen<=nslen then begin
{Ошибка в этой строке} if Copy(str,0,nslen)=NeedString then begin
          {вырезанный кусок}
          end;        
        end;
    until at=all-1;
end;

Зарание спасибо.
__________________
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ]
Delphi 7 user
  • Indy 10.5.5
  • AbfEffects & Controls
  • LockBox
  • AlphaControls
  • Eagle CDK

ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738)
Ответить с цитированием
  #2  
Старый 06.08.2007, 12:31
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вот небольшой примерчик реализации поиска по части слова/строки.
Вложения
Тип файла: zip SelInListBox.zip (5.8 Кбайт, 17 просмотров)
Ответить с цитированием
  #3  
Старый 06.08.2007, 21:53
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Для этого можно юзать AnsiStartsText и AnsiContainsText.
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #4  
Старый 07.08.2007, 13:19
Аватар для X-rem
X-rem X-rem вне форума
Начинающий
 
Регистрация: 06.04.2007
Адрес: Питер
Сообщения: 119
Репутация: 10
По умолчанию

Aristarh Dark , Код конечно рабочий , только мне не надо чтобы он в середине искал. Мне нужно только по первым буквам. И если можно то лучше напиши код ближе к этому :
Код:
//Edit1.OnChange
var
NeedString, str: String;
All, at, srtlen, nslen : Integer;
begin
  NeedString:=Form1.Edit1.Text;
  All := Form1.ListBox1.Items.Count;
  At := -1;
    repeat
      at:=at=1;
      str:=Form1.ListBox1.Items[at];
      strlen:=Length(str);
      nslen:=Length(NeedString);
      if strlen<=nslen then begin
{Ошибка в этой строке} if Copy(str,0,nslen)=NeedString then begin
          {вырезанный кусок}
          end;        
        end;
    until at=all-1;
end;
__________________
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ]
Delphi 7 user
  • Indy 10.5.5
  • AbfEffects & Controls
  • LockBox
  • AlphaControls
  • Eagle CDK

ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738)
Ответить с цитированием
  #5  
Старый 07.08.2007, 13:28
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

совсем думать не желаешь
47 строка Unit1.pas
Код:
    if pos(aText,ControlBox.Items[i])>0 then
заменить на
Код:
    if pos(aText,ControlBox.Items[i])=1 then
всего делов.
Ответить с цитированием
  #6  
Старый 09.08.2007, 11:51
Аватар для X-rem
X-rem X-rem вне форума
Начинающий
 
Регистрация: 06.04.2007
Адрес: Питер
Сообщения: 119
Репутация: 10
Смех

Ну да) Думать я не особо хочу )))
Но вот только мне надо чтобы было Copy .

З.Ы. Ничего я в коде не понял )))))))
__________________
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ]
Delphi 7 user
  • Indy 10.5.5
  • AbfEffects & Controls
  • LockBox
  • AlphaControls
  • Eagle CDK

ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738)
Ответить с цитированием
  #7  
Старый 09.08.2007, 12:37
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Можно взять компонент TComboBoxEx и установить свойство acoAutoSuggest=True в множестве AutoCompleteOptions. Строки находятся в ItemsEx.
Ответить с цитированием
  #8  
Старый 11.08.2007, 08:19
Аватар для X-rem
X-rem X-rem вне форума
Начинающий
 
Регистрация: 06.04.2007
Адрес: Питер
Сообщения: 119
Репутация: 10
По умолчанию

Народ, не ужели так сложно исправить строчку ????
Код:
 if Copy(str,0,nslen)=NeedString then begin 
__________________
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ]
Delphi 7 user
  • Indy 10.5.5
  • AbfEffects & Controls
  • LockBox
  • AlphaControls
  • Eagle CDK

ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter