Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2009, 18:00   #1
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
Стрелка ListBox & SpeedButton

Пишу словарь по англ. языку. Есть два ListBox'a, один SpeedButton. Слова загружены в Items (свойства ListBox'a). Вот немогу реализовать чтоб когда прописовал в Edit'e нужное тебе слово и на клике SpeedButton'a он его проверял в Items и находил. Помогите, как это можно реализовать???
Rebel123 вне форума Ответить с цитированием
Старый 14.07.2009, 18:55   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Можно так :
Код:
itemNo := ListBox1.Items.IndexOf('Нужная строка');// здесь будет номер элемента или -1 если такового нет
// и дальше использовать номер найденного элемента
НО !!! В ListBox`е она (строка) должна быть именно такой 'Нужная строка', а не например 'Нужная ' потому что результата не будет. Поэтому советую применить базу данных, в которой есть возможность искать фразу по частичному вхождению.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 14.07.2009, 19:21   #3
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Сорри, но я не чего не понял! да к тому же еще ошибка строки выходит!
Rebel123 вне форума Ответить с цитированием
Старый 14.07.2009, 19:22   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Я предложу вариант получше
В свойствах ListBox1 поставьте
Код:
MultiSelect := true
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to ListBox1.Items.Count - 1 do
    if Pos(Edit1.Text, ListBox1.Items.Strings[i]) > 0 then
      ListBox1.Selected[i] := true;
end;
psycho-coder вне форума Ответить с цитированием
Старый 14.07.2009, 19:54   #5
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Спасибо psycho-coder.
У меня еще 1 вопрос! Вот у меня есть ScrollBar'ы от двух ListBox'ов. Надо будет сделать так чтоб при перемотки одного ScrollBar'a чтоб и перематывался и другой (таким способом пользователю будет легче, он не сможет потерять свое слово и перевод на него)

Код:
procedure TlistBox.vs;
begin
inherited;
 Form4.ListBox2.TopIndex:=m.Pos;
end;
вот этот код вставлял, она перематывает вторую но когда перематываешь он отскакивает обратно. Я даже незнаю что еще можно сделать! Если кто может помогите!!!

Последний раз редактировалось Stilet; 15.07.2009 в 08:09.
Rebel123 вне форума Ответить с цитированием
Старый 14.07.2009, 20:59   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

По поводу поиска в листбоксе - в обработчике ONCHANGE вашего эдита напишите всего одну строку:
Listbox1.perform(lb_selectstring,-1,longint(pchar(Edit1.text)));
После этого у вас при вводе первой же буквы слова будет выбрана строка в листбоксе, начинающаяся с этой буквы. И так далее.
По поводу синхронизации листбоксов. Есть у листбокса такое свойство - ItemIndex... Дальше - трудно не догадаться, не правда ли?
mihali4 вне форума Ответить с цитированием
Старый 14.07.2009, 21:07   #7
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
По поводу поиска в листбоксе ...
Прикольно... Но такой способ ищет только первое вхождение, а если похожих слов много, то мой вариант выделит все.
А при включенном MultiSelect вообще не выделяет
psycho-coder вне форума Ответить с цитированием
Старый 14.07.2009, 21:17   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Прикольно... Но такой способ ищет только первое вхождение, а если похожих слов много, то мой вариант выделит все.
Простите, а зачем выделять все слова?
Мой способ выделяет именно то слово из множества похожих, которое в точности соответствует введенному в эдит...
Причем поиск происходит по мере ввода каждой буквы.
И тут же будет указан перевод.
Похоже, вы не до конца разобрались, а вернее, поленились поставить нормальный эксперимент...
mihali4 вне форума Ответить с цитированием
Старый 14.07.2009, 21:24   #9
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Нет, не поленился. Все гораздо проще.
Невнимательно прочитал, что хочет ТС. Банально. (
psycho-coder вне форума Ответить с цитированием
Старый 15.07.2009, 07:54   #10
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Цитата:
Сообщение от mihali4
Есть у листбокса такое свойство - ItemIndex... Дальше - трудно не догадаться, не правда ли?
-Вы имеете ввиду вот это: ListBox1.ItemsIndex:=ListBox2.Items Index;, вот это я сделал уже. А меня интересует перемотка, выше выставлял кусочек кода но он когда перематывает, отскакивает обратно.
-Вот выставил свою прогу, посмотрите сами.........
P.S mihali4 - ваша версия поиска оказалось удобнее, спасибо вам
pchyco-coder - ваша версия тоже хорошо, тоже спасибо
Вложения
Тип файла: rar Project3.rar (302.6 Кб, 12 просмотров)

Последний раз редактировалось Rebel123; 15.07.2009 в 09:51.
Rebel123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SpeedButton mustang007 Общие вопросы Delphi 5 14.05.2009 19:44
drag&drop в listbox-e blackstersl Общие вопросы Delphi 2 03.05.2009 17:11
PopUpMenu из SpeedButton Altera Общие вопросы Delphi 4 15.07.2008 04:14
SpeedButton.Glyph mutabor Компоненты Delphi 6 03.05.2008 16:51
ListBox & *.Bmp Saro Мультимедиа в Delphi 1 24.04.2007 02:06