D
DJKondakov
Доброго времени суток! Есть задача: перемешать строки в TListBox так, чтобы строки не повторялись. Реализую след. образом:
*********
{$R *.DFM}
function FindRecord(list: tlistbox; rec: integer): boolean;
var
i: integer;
begin
for i:=0 to list.Items.Count-1 do begin
if list.Items=inttostr(rec) then result:=true;
end;
result:=false;
end;
***
var
i, j, r: integer;
back: integer;
list: tlistbox;
begin
randomize;
list:=tlistbox.Create(list);
for i:=0 to listbox1.Items.Count-1 do begin
listbox1.Visible:=false;
listbox3.Visible:=true;
r:=random(listbox1.items.count-1);
while findrecord(list, r) do
r:=random(listbox1.items.count-1);
list.Items.Add(inttostr®);
listbox3.Items.Add(listbox1.items[r]);
listbox4.Items.Add(listbox2.items[r]);
end;
end;
**********
При выполнении последнего кода вылетает ошибка (см. в названии темы),
и выделяется строка, выделенная жирным. Кажется, никаких новых класов и т.п. я не создавал...
Что делать?
*********
{$R *.DFM}
function FindRecord(list: tlistbox; rec: integer): boolean;
var
i: integer;
begin
for i:=0 to list.Items.Count-1 do begin
if list.Items=inttostr(rec) then result:=true;
end;
result:=false;
end;
***
var
i, j, r: integer;
back: integer;
list: tlistbox;
begin
randomize;
list:=tlistbox.Create(list);
for i:=0 to listbox1.Items.Count-1 do begin
listbox1.Visible:=false;
listbox3.Visible:=true;
r:=random(listbox1.items.count-1);
while findrecord(list, r) do
r:=random(listbox1.items.count-1);
list.Items.Add(inttostr®);
listbox3.Items.Add(listbox1.items[r]);
listbox4.Items.Add(listbox2.items[r]);
end;
end;
**********
При выполнении последнего кода вылетает ошибка (см. в названии темы),
и выделяется строка, выделенная жирным. Кажется, никаких новых класов и т.п. я не создавал...
Что делать?