Главная страницаОбратная связьКарта сайта

Копирование выделеных строк из 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;

Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Копирование выделеных строк из Listbox1 в Listbox2", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info