Witam
Jak za pomocą przycisku losować zaznaczenie w listbox? Dajmy na to mam 10 itemów - chcę za pomocą przycisku Losuj za każdym razem jak go naciskam - aby mi wybierało różną pozycję. Czytałem coś o funkcji Random, ale jak ją tutaj zastosować?
0
0
Jeżeli mogą się powtarzać, to:
ListBox.ItemIndex := Random(maksymalna_wartosc);
Jeżeli nie, to można zrobić coś takiego:
Var Wylosowane: Array[0..maksymalna_wartosc] Of Integer;
Licznik: Integer = 0;
Function Losuj: Integer;
Var L, I: Integer;
F: Boolean;
Begin
While (True) Do
Begin
F := True;
L := Random(maksymalna_wartosc);
For I := 0 To maksymalna_wartosc Do
if (Wylosowane[I] = L) Then
Begin
F := False;
Break;
End;
if (F) Then
Break Else
Begin
ShowMessage('Nie można już nic wylosować!');
Exit;
End;
End;
Wylosowane[Licznik] := L;
Inc(Licznik);
Result := L;
End;
0
Ogromne dzięki!
Dostosowałem kod do własnych potrzeb, bo czasem przy pierwszym rozwiązaniu jakie podałeś program zaznaczał jeszcze raz taką samą wartość. Poniżej daje jeśli ktoś by potrzebował:
var
zaznaczona:integer;
begin
zaznaczona:=ListBox.ItemIndex;
ListBox.ItemIndex := Random(kategorie.Count);
while zaznaczona = kategorie.ItemIndex do begin
ListBox.ItemIndex := Random(kategorie.Count);
end;