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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2009, 08:05   #1
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
Вопрос [Delphi] Помогите с listbox'ами

Код:
with ListBox1 do
    ItemIndex := Perform(LB_SELECTSTRING, ItemIndex, LongInt(edit1.text));
вот так у меня ищет в листбоксе введенныое слово...
как сделать теперь найденное скопировать в листбокс2?
если будет найденно более 1 слова, то их тоже скопировать туда...
Рамик вне форума Ответить с цитированием
Старый 09.07.2009, 08:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Скромный примерчик:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
var k,i:integer;
begin
 i:=0;
 ListBox2.Items.Clear;
 i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text))); k:=i;
 repeat
   ListBox2.Items.Add(ListBox1.Items[i]);
   i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text)));
 until (i=LB_ERR)or(i=k);
end;
Копируе все что совпадает с введенным в Эдит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2009, 08:41   #3
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Скромный примерчик:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
var k,i:integer;
begin
 i:=0;
 ListBox2.Items.Clear;
 i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text))); k:=i;
 repeat
   ListBox2.Items.Add(ListBox1.Items[i]);
   i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text)));
 until (i=LB_ERR)or(i=k);
end;
Копируе все что совпадает с введенным в Эдит.
Спасибо!
.

выдает только ошибку когда вводиш символы которых нет в лист боксе:
Код:
list index out of bounds(-1)
как это исправить?

и когда удаляешь символы все в эдит1 тоже такая ошибка вылазит

Последний раз редактировалось Stilet; 09.07.2009 в 09:02.
Рамик вне форума Ответить с цитированием
Старый 09.07.2009, 09:04   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В проверки кто будет ставить, Пушкин?
Код:
 
i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text))); k:=i;
if (Edit1.Text='')or(i=LB_ERR) then exit;
 repeat
   ListBox2.Items.Add(ListBox1.Items[i]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2009, 09:06   #5
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В проверки кто будет ставить, Пушкин?
Код:
 
i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text))); k:=i;
if (Edit1.Text='')or(i=LB_ERR) then exit;
 repeat
   ListBox2.Items.Add(ListBox1.Items[i]);

спасибо!
Рамик вне форума Ответить с цитированием
Старый 09.07.2009, 20:10   #6
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В проверки кто будет ставить, Пушкин?
Код:
 
i:=ListBox1.Perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text))); k:=i;
if (Edit1.Text='')or(i=LB_ERR) then exit;
 repeat
   ListBox2.Items.Add(ListBox1.Items[i]);
Код:
with ListBox3 do
    ItemIndex := Perform(LB_SELECTSTRING, ItemIndex, LongInt(edit1.text));
i:=listbox3.perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text)));
k:=i;
if (Edit1.Text='')or(i=LB_ERR) then exit;
repeat
  listbox2.items.add(ListBox1.Items[i]+StringOfChar(' ',40-2*length(ListBox1.Items[i]))+listbox3.Items[i]);
  i:=listbox3.perform(LB_FINDSTRING,i,integer(pchar(Edit1.Text)));
until (i=LB_ERR)or(i=k);
end;
Здесь у меня аналогичная ошибка...подставил эту проверку, но все равно..
Рамик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с БД на Delphi aks Помощь студентам 11 20.02.2009 15:46
Помогите с Delphi Lenusik Помощь студентам 0 31.05.2008 21:36