Combobox jak przechowywać dwie wartości id i value

0

Witam serdecznie,
Mam nadzieje ze takiego pytania nie było :)

Sprawa z punktu widzenia prosta, ale przez to że jestem początkującym delphi'arzem a wczesniej działałem w php/html mam pewien problem.

Mam dane typu: id i nazwa (np. dla id=act nazwa=aktywny; id=inact nazwa=nieaktywny.
Chciałbym aby po wybraniu z combobox'a np. nieaktywny, moc dostac id dla niego czyli inact.

--
Dziekuje za pomoc i sorka za takie proste (trudne :)) zadanie.

0

Było.

Jeśli klucz i wartość to string'i to chyba zostaje Ci przechowywanie obu w jednym polu z jakimś separatorem + ownerdraw. Jakbyś zechciał użyć integer + String to jest właściwość Objects.

Chyba że w ogóle nie wiesz o właściwości ItemIndex : )

a : array [0..1] of String = ('act','inact')

a[ComboBox1.ItemIndex]

b

0

TStrings oprócz liczb może przechowywać obiekty.
http://delphi.about.com/cs/adptips2002/a/bltip0602_2.htm
i tej zasadzie możesz przechowywać co chcesz

0

Proponuję coś takiego

//...
  ComboBox.Items.Add('act=aktywny');
  ComboBox.Items.Add('inact=nieaktywny');
//...
//w zdarzeniu OnClick ComboBox'a
  var id:string;
//...
  id:=ComboBox.Items.Names[ComboBox.ItemIndex];

Jeżeli chcesz aby ComboBox wyświetlał tylko nazwy (zamiast id=nazwa) to ustaw Style:=csOwnerDrawFixed i oprogramuj zdarzenie OnDrawItem.

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