![]() |
Listbox Multiselect
hab folgendes Problem:
Ich kann in einer Listbox 2 items auswählen. Ich brauche dann den index der zwei Einträge um dann später eine funktion aufzurufen. ich hab das folgendermasen programmiert. geht das auch einfacher?
Delphi-Quellcode:
var
i : integer; st1,st2 : integer; erstegefunden : boolean; begin erstegefunden:=false; if Listbox1.Selcount=2 then begin begin for i:=Listbox1.Items.Count-1 downto 0 do if (Listbox1.Selected[i]=true) then if erstegefunden=false then begin st1:=i; erstegefunden:=true; end else st2:=i; end; (*Hier wird die funktion mit a und b aufgerufen*) |
Re: Listbox Multiselect
Ist doch kein Problem:
Delphi-Quellcode:
Grüße vom marabu
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; Warum nicht den dynamischen Array-Typ aus der Unit Types verwenden... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz