Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.12;
Скачать: CL | DM;

Вниз

как из listbox1 перенести выделеные строки в listbox2 ?   Найти похожие ветки 

 
Striker   (2003-04-30 12:08) [0]

Я знаю как перенести все строки или только выделеную 1 строку
а если в listbox выделены 3,5,455 строк ? как скопировать или перенести только выделенные


 
MBo ©   (2003-04-30 12:09) [1]

проверять каждую на Selected


 
Striker   (2003-04-30 12:14) [2]

> MBo
это конечно можно ! :) а если например у меня 99999 строк ?


 
jel ©   (2003-04-30 12:17) [3]

Даже если больше - другого пути нет.
См.
> MBo © (30.04.03 12:09)



 
stone ©   (2003-04-30 12:18) [4]

TListBox.CopySelection (Destination: TCustomListControl);
TListBox.MoveSelection(Destination: TCustomListControl);

выбирай что больше подходит


 
MBo ©   (2003-04-30 12:19) [5]

>stone
Это в каких Delphi появилось????


 
stone ©   (2003-04-30 12:24) [6]

Точно не помню, но в 6-ой уже точно было


 
Striker   (2003-04-30 12:25) [7]


> stone
я в delphi новичёк так что не знаю как применять эту команду
пробывал так listbox2.CopySelection(listbox1);

программа компилиться но не хочет копировать выдеенные элементы


 
jel ©   (2003-04-30 12:25) [8]


> Даже если больше - другого пути нет.

Упс. :(


> stone © (30.04.03 12:18)

Абсолютно прав. В 6 точно есть.


 
jel ©   (2003-04-30 12:29) [9]


> Striker (30.04.03 12:25)

В первом боксе выделяешь чего хочешь и копируешь во второй
ListBox1.CopySelection(ListBox2);


 
stone ©   (2003-04-30 12:29) [10]

Striker (30.04.03 12:25)

Можешь посмотреть открыв

File -> New -> Forms -> Dual List Box

Возможно, что это как раз то, что тебе надо.
Удачи.


 
Striker   (2003-04-30 12:41) [11]

Спасибо всем !
я сделал так

--------------------
public
function GetFirstSelection(List: TCustomListBox): Integer;
procedure MoveSelected(List: TCustomListBox; Items: TStrings);
procedure SetItem(List: TListBox; Index: Integer);
---------------
function tform1.GetFirstSelection(List: TCustomListBox): Integer;
begin
for Result := 0 to List.Items.Count - 1 do
if List.Selected[Result] then Exit;
Result := LB_ERR;
end;
procedure tform1.MoveSelected(List: TCustomListBox; Items: TStrings);
var
I: Integer;
begin
for I := List.Items.Count - 1 downto 0 do
if List.Selected[I] then
begin
Items.AddObject(List.Items[I], List.Items.Objects[I]);
// List.Items.Delete(I); // можно оставить если вы хотите чтобы в 1 списке строки удалились
end;
end;
procedure tform1.SetItem(List: TListBox; Index: Integer);
var
MaxIndex: Integer;
begin
with List do
begin
SetFocus;
MaxIndex := List.Items.Count - 1;
if Index = LB_ERR then Index := 0
else if Index > MaxIndex then Index := MaxIndex;
Selected[Index] := True;
end;
end;

----------
пример использования :

procedure TForm1.Button1Click(Sender: TObject);
var
Index: Integer;
begin
Index := GetFirstSelection(listbox1);
MoveSelected(listbox1, listbox2.Items);
SetItem(listbox1, Index);
end;






Страницы: 1 вся ветка

Текущий архив: 2003.05.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
6-34531
ScaliaR
2003-03-15 04:11
2003.05.12
подсчет трафика в сети.


14-34592
Soft
2003-04-21 18:05
2003.05.12
Партия программистов


14-34550
partizan
2003-04-23 13:28
2003.05.12
архиватор


1-34464
alt7
2003-04-29 13:08
2003.05.12
Консольное приложение и TNotifyEvent


4-34647
Sheva
2003-02-17 15:17
2003.05.12
Текст edit-а из другого приложения.