usuwanie elementow z listy w comboasach

0

Witam,
czy może ktoś koncepjcje ja usuwać z listy element, który właśnmie został wybrany.... Dokładniej to wygląda tak, że mam kilka combosów. Pod niego podpięta jest jakaś lista czegoś. Chciałbym teraz aby po doddaniu jakiegos elementu z tej listy nie pojawial sie on na ltej samej liscie podlaczonej do reszty cosmbosow.

0

A po polsku????

0

mam sobie tablice dynamiecznie tworzonych combobox'ow. Na formie jest ich kilkanascie. Do kazdego combosa wrzucam te sama liste, powiedzmy sobie liste liczb od 1 do ilusc tam. Czyli po rozwinieciu combosa w kazdym z nich znajduje sie ta sama lista. A teraz chcialbym tak, jezeli w combosie nr 1 wybiore z listy pozycje 1, to przy probie wybierania element w combosie nr 2 jest juz ich o jeden mniej, czyli z listy zniknal element ktory jest w combosie nr 1..... itd

0

po kliknięciu na element ?
no to by było coś takiego chyba w onselect każdego combosa:

begin
 TComboBox(Sender).Items.Delete(TComboBox(Sender).ItemIndex);
end;

ale dalej zabardzo nierozumiem co chcesz uzyskać więc opisałem to co chyba zrozumiałem. napisz przykłady obrazowo jak mają te comboboxy wyglądać na początku a jak każdy z nich po zrobieniu czegoś tam.

0
begin
 TComboBox(Sender).Items.Delete(TComboBox(Sender).ItemIndex);
end;

nie do konca o to mi chodzi... moze sprobuje wytlumaczyc to jeszcze raz... na formie pojawia mi sie 20 combosow (ssa tworzone dynamicznie i znajduja sie w tablicy)... pod kazdy z combosow podpieta jest lista nazw ulic...i teraz idea polega na tym, aby po wybraniu jakiejs ulicy w 1 combosie ta ulica nie byla juz dostepna w drugim combosie (czyli zeby uzytkownik nie mogl przyporzadkowac wiecej niz raz tej samej ulicy)... i jezeli teraz wybieram ulice w 2 combosie, to na liscie nie ma juz ulicy wybrabej wczesniej... moze teraz to cos rozjasni...

0

dalej nierozumiem. może to zilustrujesz. narysuj (tekstowo :)) tutaj kilka itemow z combosów co ma się z nimi dziać.

nie ma już czyli jest kasowana. wcześniej pisze że w pierwszym kombosie jak coś się wybierze to ma to być niedostępne w pozostałych czy ma być skasowane w pozostałych a pozostać w tym pierwszym ??

dobra to teraz może troche więcej zakapowałem to zrób tak:
żeby ułatwić sobie sprawę z rozpoznawaniem combosób to przy tworzeniu dynamicznym combosów ustaw Tag na np 20+numer czyli jeśli tworzysz tablice Kombosy[i]:=TComboBox.Create; to dopisz jeszcze Kombosy[i].Tag:=20+i; i teraz kodzik (w onchange):

var i:integer;
begin
  for i:=1 to 20 do begin
    if (TComboBox(Sender).Tag<>i+20) then
      Kombosy[i].Items.Delete(Kombosy[i].Items.IndexOf(TComboBox(Sender).Items.Strings[TComboBox(Sender).ItemIndex]));
  end;
end;
0

Kombosy[i].Items.Delete(Kombosy[i].Items.IndexOf(TComboBox(Sender).Strings[TComboBox(Sender).ItemIndex]));
tyle ze wywala mi gdy dochodzi do .Strings

0

aha sorry był błąd już poprawiłem

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