ListBox-który zaznaczony - Selected odpada

0

Witam. Mam w listBoxie MultiSelect na true.
I teraz jak wydobyć ideksy zaznaczonych itemów?

Robiąc tak:

for i:=0 to listBox1.Count-1 do
     if listBox1.Selected[i] then blablabla

Niewiele wskuram, gdyż zgodnie z pomocą Delphi(chyba, że coś źle zrozumiałem) selected działa w 100% gdy jest zaznaczony tylko jeden item. A gdy więcej, to chyba powinien zwracać index ostatniego zaznaczonego.

A skąd mam wiedzieć, jakie itemy są zaznaczone, jeśli np. użytkownik zaznaczał z ctrl lub shiftem?

0

w helpie jest źle napisane - trzeba było sobie najpierw skompilować i sprawdzić, a dopiero potem pisać na forum...

luknij sobie, leniuchu - na formatce guzik i listbox wypełniony jakimiś wartościami:

unit Unit1;
interface
uses
  Windows, Classes, Forms, Controls, StdCtrls;
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
  with listbox1 do
    for i := 0 to items.Count-1 do
      if selected[i] then items[i] := 'sel' else items[i] := 'not sel';
end;
end.
0

zgodnie z pomocą Delphi(chyba, że coś źle zrozumiałem) selected działa w 100% gdy jest zaznaczony tylko jeden item. A gdy więcej, to chyba powinien zwracać index ostatniego zaznaczonego.

No to nie chyba, ale na pewno żle zrozumiałeś.

w helpie jest źle napisane - trzeba było sobie najpierw skompilować i sprawdzić, a dopiero potem pisać na forum...

Nie czytałeś tego co jest w helpie, albo także źle zrozumiałeś. W helpie jest wszystko ładnie i elegancko napisane od czego jest Selected i jak działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1