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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 13:34   #1
TSilver
 
Регистрация: 12.06.2009
Сообщений: 8
По умолчанию Работа с Multiselect в Tlistbox

Дорогие форумчане помогите решить вот такую задачу.
Есть 2 listbox'а и включена функция multiselect нужно по нажатию кнопки переносить все выделенные строки из одного listbox'а в другой, причем строки которые были выделены в первом listbox'е должны будут удаляться)
TSilver вне форума Ответить с цитированием
Старый 14.06.2009, 14:18   #2
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:= 0 to listbox1.SelCount - 1 do
begin
listbox2.Items.Add(listbox1.Items.Strings[i]);
listbox1.Items.Delete(i);
end;
end;

Последний раз редактировалось blackstersl; 14.06.2009 в 14:47.
blackstersl вне форума Ответить с цитированием
Старый 14.06.2009, 21:57   #3
TSilver
 
Регистрация: 12.06.2009
Сообщений: 8
По умолчанию

К огромному сожалению не работает данный код так как нужно(((
TSilver вне форума Ответить с цитированием
Старый 14.06.2009, 22:03   #4
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вот что то такое:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i, i1: integer;
begin
 for i:=0 to listbox1.Items.Count-1 do
  begin
   if ListBox1.Selected[i] then
    begin
     ListBox2.Items.Add(ListBox1.Items.Strings[i]);
    end;
  end;
 i:=ListBox1.Items.Count-1;
 i1:=0;
 while i1<=i do
  begin
   if ListBox1.Selected[i1] then
    begin
     ListBox1.Items.Delete(i1);
     i:=listBox1.Items.Count-1;
     i1:=0;
     continue;
    end;
   inc(i1);
  end;
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 15.06.2009, 18:28   #5
TSilver
 
Регистрация: 12.06.2009
Сообщений: 8
По умолчанию

А вот за это спасибо уже))))
Еще есть такой вопрос, есть теже два listbox'а, но уже требуется указать строки которые встречаються и там и там))
TSilver вне форума Ответить с цитированием
Старый 15.06.2009, 23:51   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Еще есть такой вопрос, есть теже два listbox'а, но уже требуется указать строки которые встречаються и там и там))
Код:
Var
I,A: Integer;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
For I:=0 To ListBox1.Count-1 Do
Begin
If (ListBox1.Items.Strings[I]) = (ListBox2.Items.Strings[A]) Then
Begin
ShowMessage(ListBox1.Items.Strings[I]);
End
End;
If A <= ListBox2.Items.Count-2 Then
Begin
A:=A+1;
Button1.Click;
End
Else
Begin
A:=0;
End;
End;
Procedure TForm1.FormCreate(Sender: TObject);
Begin
A:=0;
End;
Если понадобится, то оптимизируйте.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 16.06.2009, 21:18   #7
TSilver
 
Регистрация: 12.06.2009
Сообщений: 8
По умолчанию

Вышеуказанный код не подходит.
Нужно чтобы например в двух листбоксах были марки автомобилей и по нажатию кнопки выделялись одинаковые модели)
TSilver вне форума Ответить с цитированием
Старый 16.06.2009, 22:14   #8
kinderproc
Пользователь
 
Регистрация: 10.06.2009
Сообщений: 13
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: integer;
begin
  for i := 0 to ListBox1.Count -1 do
    for j := 0 to ListBox2.Count - 1 do
    begin
      if ListBox1.Items[i] = ListBox2.Items[j] then
      begin
        ListBox1.Selected[i] := True;
        ListBox2.Selected[j] := True;
      end;
    end;
end;
У обоих ListBox-ов свойство Multiselect нужно установить в True.
kinderproc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TListBox Dr.Badnezz Компоненты Delphi 3 03.02.2009 23:15
Вопрос по TListBox Rifler Помощь студентам 2 17.11.2008 22:01
MultiSelect в CheckListBox lexaltd Общие вопросы Delphi 5 15.08.2008 16:28
Multiselect в dbgrid только при помощи мыши Ary Компоненты Delphi 2 09.04.2008 15:26
DBGrid и Multiselect XPAiN БД в Delphi 2 14.11.2007 11:55