Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Listbox Multiselect

  Alt 10. Nov 2005, 17:09
Ist doch kein Problem:

Delphi-Quellcode:
uses
  Types; // TIntegerDynArray

function CreateSelected(lb: TListBox; var a: TIntegerDynArray): integer;
var
  i: integer;
begin
  SetLength(a, lb.SelCount);
  Result := 0;
  for i := 0 to Pred(lb.Count) do
    if lb.Selected[i] then
    begin;
      a[Result] := i;
      Inc(Result);
    end;
end;

procedure TDemoForm.CopyButtonClick(Sender: TObject);
var
  i: integer;
  xa: TIntegerDynArray;
  sl: TStringList;
begin
  if CreateSelected(ListBox, xa) > 0 then
  begin
    sl := TStringList.Create;
    with ListBox do
      for i := Low(xa) to High(xa) do
        sl.Add(Items[xa[i]]);
    ShowMessage(sl.CommaText);
    sl.Free;
  end;
end;
Grüße vom marabu

Warum nicht den dynamischen Array-Typ aus der Unit Types verwenden...
  Mit Zitat antworten Zitat