Копирование выделеных строк из Listbox1 в Listbox2
Автор: Black_phoenix
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> копирование выделеных строк из listbox1 в listbox2
Зависимости: Windows, SysUtils, Classes, Controls, StdCtrls
Автор: Black_phoenix, Black_phoenix@rambler.ru, Almaty
Copyright:
Дата: 30 апреля 2003 г.
***************************************************** }
public
function GetFirstSelection(List: TCustomListBox): Integer;
procedure MoveSelected(List: TCustomListBox; Items: TStrings);
procedure SetItem(List: TListBox; Index: Integer);
implementation
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;
|