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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.09.2013, 09:41
Аватар для Erilar
Erilar Erilar вне форума
Новичок
 
Регистрация: 30.03.2011
Сообщения: 91
Версия Delphi: 7
Репутация: 10
Вопрос Поиск в ЛистБоксе

Как можно найти строку в листбоксе, Например:
Есть три строки : 1 - Первая, 2 - Вторая, 3 - Третья?
При вводе слова в едит - "Вторая", В листбоксе фокусируется на второй строке.
__________________
Если программа даёт неверный результат - в ней ошибка. Если же результат правильный - ошибок, как минимум, две.
Ответить с цитированием
  #2  
Старый 03.09.2013, 09:58
Аватар для Erilar
Erilar Erilar вне форума
Новичок
 
Регистрация: 30.03.2011
Сообщения: 91
Версия Delphi: 7
Репутация: 10
Вопрос Нашел

Как найти понял, А как можно теперь, чтобы он выделил эту строку?
Код:
var
  i: integer;
  Find: string;
begin
  Find := Edit.text;
  for i := 0 to LBox.Items.Count - 1 do
    if Pos(Find, LBox.Items.Strings[i]) <> 0
      then showmessage('Нашел!');
__________________
Если программа даёт неверный результат - в ней ошибка. Если же результат правильный - ошибок, как минимум, две.
Ответить с цитированием
  #3  
Старый 03.09.2013, 10:00
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
По умолчанию

Общий смысл такой, только вместо showmessage - выделение нужной строки.

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Items.Add('1');
  ListBox1.Items.Add('2');
    ListBox1.Items.Add('3');
      ListBox1.Items.Add('4');
        ListBox1.Items.Add('5');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to ListBox1.Items.Count - 1 do
  if ListBox1.Items[i] = Edit1.Text then
    ShowMessage(ListBox1.Items[i]);
end;
Ответить с цитированием
  #4  
Старый 03.09.2013, 10:03
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Erilar
Как найти понял, А как можно теперь, чтобы он выделил эту строку?
Код:
var
  i: integer;
  Find: string;
begin
  Find := Edit.text;
  for i := 0 to LBox.Items.Count - 1 do
    if Pos(Find, LBox.Items.Strings[i]) <> 0
      then showmessage('Нашел!');
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Add('1');
  ListBox1.Items.Add('2');
  {This will fail on a single selection ListBox}
  // ListBox1.Selected[1] := true;
  ListBox1.ItemIndex := 1; {This is ok}
end;
Ответить с цитированием
  #5  
Старый 03.09.2013, 10:19
Аватар для Erilar
Erilar Erilar вне форума
Новичок
 
Регистрация: 30.03.2011
Сообщения: 91
Версия Delphi: 7
Репутация: 10
Радость Спасибо!

Код:
var
  i: integer;
  Find: string;
begin
  Find := Edit.text;
  for i := 0 to LBox.Items.Count - 1 do
    if Pos(Find, LBox.Items.Strings[i]) <> 0
      then then LBox.ItemIndex:=i; 
__________________
Если программа даёт неверный результат - в ней ошибка. Если же результат правильный - ошибок, как минимум, две.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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