Kilka kodów działających niezależnie w jednej procedurze

0

Cześć
Wybaczcie ale mam kolejne pytanie ale proste dla was :)

Jak zrobić by Te kody działały oddzielnie w jednej procedurze one są poprawne ale razem się gryzą i są dziwne zachowania
a nie umiem jeszcze tak tego poskładać by zrobić jeden z tego kod.
To jest na pewno banale a jak bym miała 10 lub więcej takich nie zależnych linijek czy dłuższych kodów.

procedure TForm2.ListBoxWym1Click(Sender: TObject);
begin
 UnselectLastSelectedItem(ListBox1Mp3);
 UnselectLastSelectedItem(ListBox2Mp3);    \\ Te dwie z tą niżej

 LabeledEditWym1.Text := ListBoxWym1.Items[ListBoxWym1.ItemIndex];
end; 

0

Dlaczego chcesz, aby działały razem i co to znaczy, że się gryzą? Stały się samoświadome?

0

Gdyż wyskakują dziwne a właściwie nie dziwne błędy w programie

Komunikat
**List index out of bounds (-1)
**
albo zamienienie miejscami (przeniosę na opak(zamienię miejscami tą pod spodem dam do góry ) to indeksy się nie odznaczają

Nie wiem jak fachowo to zrobić by się** nie widziały lub w jakieś pętli** albo muszę kod przerobić tylko nie wiem jak

2

Nie rozumiem o co w ogóle wchodzi z tym "się gryzą" ani "aby nie widziały" ale na moje oko skoro procedura nazywa się UnselectLastSelectedItem to chyba ma za zadanie odznaczyć ostatnią zaznaczoną pozycję (tam jest multiselect?) więc jeżeli się zdarzy że nie będzie żadnej zaznaczonej pozycji a wywołasz:

 LabeledEditWym1.Text := ListBoxWym1.Items[ListBoxWym1.ItemIndex];

to logiczne że rzuci wyjątkiem List index out of bounds (-1) ponieważ próbujesz się odwołać do indeksu poza zakresem (-1 co oznacza brak zaznaczonej pozycji) podczas gdy pozycje listy są indeksowane od 0.

0

Nie ma multi selectu tylko ma odznaczać Indeks w pierwszym Listboxie jeśli zaznaczymy go w drugim i na odwrót jeden select do kilku Listboxów

procedure UnselectLastSelectedItem(AListBox: TListBox);
var
  LIndex: Integer;
begin
  for LIndex := AListBox.Items.Count - 1 downto 0 do
    if AListBox.Selected[LIndex] then
    begin
      AListBox.Selected[LIndex] := False;
      Exit();
    end;
end;

Komunikat wywala po klikaniu na indeksy w ListBoxie

0

Dobra znalazłam zonka DZIĘKUJĘ

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