Autor Téma: DBCombobox pri zmene zmena udaju v tabulce  (Přečteno 377 krát)

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 339
  • Karma: 1
    • Verze Delphi: Delphi 7
DBCombobox pri zmene zmena udaju v tabulce
« kdy: 04-11-2022, 10:22:44 »
Ahoj, snazim se rozchodit tuto vec...
mam tabulku :
ID / Jmeno / EAN
1     Bila        15478
2     Cerna     88877
3     zelena    35566

Mam do DBComboboxu natazene udaje z tabulky ze sloupce Jmeno, tzn, ze se mi zobrazuji Bila,Cerna,Zelena
A potreboval bych aby se mi do Editu natahovali EAN dle vyberu...

Natazeni do DBCombobocu mam dle :
Kód: Delphi [Vybrat]
  1.   DBCombobox1.items.clear;
  2.     ZTable4.open;
  3.     while not ZTable4.eof do
  4.       begin
  5.         DBCombobox1.items.add(ZTable4.fieldbyname('popis').asstring);
  6.         ZTable4.next;
  7.       end;

Do editu se snazim natahnout :
Kód: Delphi [Vybrat]
  1. Edit6.Text := ZTable4.fieldbyname('EAN').asstring
ale to mi samozřejmě nejde, natahne to vzdy EAN prvniho zaznamu a ne dle vyberu

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6867
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:DBCombobox pri zmene zmena udaju v tabulce
« Odpověď #1 kdy: 04-11-2022, 12:40:06 »
DBCombobox1.Items.AddObject()...
Pri zmene položky si načítaš hodnotu v objekte a pošleš do Edit6.Text
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 339
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:DBCombobox pri zmene zmena udaju v tabulce
« Odpověď #2 kdy: 04-11-2022, 12:55:55 »
Muzu poprosit jak to ma vypadat cely ??

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6867
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:DBCombobox pri zmene zmena udaju v tabulce
« Odpověď #3 kdy: 04-11-2022, 15:14:41 »
Poprosiť môžeš. I tak Ti tu nič nedám  ;)  Je to uvedené v každom základnom dokumente!
Takže: MyComboBox.Items + kurzor na Items a stlačiť F1; Ak sa Ti nebude dariť, tak sem hodíš svoj kód.
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 377
  • Karma: 12
    • Verze Delphi: D5, XE2, 10.4.2, D11
Re:DBCombobox pri zmene zmena udaju v tabulce
« Odpověď #4 kdy: 05-11-2022, 08:01:27 »
Jak píše Standa, do Comboboxu si můžeš při vkládání řádků uložit ke zobrazovanému textu ještě nějaká data navíc když použiješ ComboBox.Items.AddObject() místo ComboBox.Items.Add(). Máš víc možností, jak to udělat: připojit si k textu ID a při vybrání řádku to ID vyhledat v tabulce, nebo si můžeš připojit nějaký svůj objekt, který bude obsahovat všechna data načtená z tabulky, ale nejjednodušší v tomhle případě asi budeš mít si uložit rovnou hodnotu EAN jako integer, protože ten tvůj EAN, zdá se, stejně obsahuje jen číslice.

Kód: Delphi [Vybrat]
  1. DBCombobox1.items.clear;
  2.     ZTable4.open;
  3.     while not ZTable4.eof do
  4.       begin
  5.         DBCombobox1.items.AddObject(ZTable4.fieldbyname('popis').asstring, TObject(ZTable4.FieldByName('EAN').AsInteger));
  6.         ZTable4.next;
  7.       end;
  8. //...
  9. if DBComboBox1.ItemIndex > -1 then
  10.   Edit6.Text := IntToStr(Integer(DBComboBox1.Items.Objects[DBComboBox1.ItemIndex]));
  11.  
nil

Offline František

  • Guru
  • *****
  • Příspěvků: 829
  • Karma: 7
    • Verze Delphi: comunity 10.4.2, D2007, D11
Re:DBCombobox pri zmene zmena udaju v tabulce
« Odpověď #5 kdy: 12-11-2022, 09:28:21 »
Do editu se snazim natahnout :
Kód: Delphi [Vybrat]
  1. Edit6.Text := ZTable4.fieldbyname('EAN').asstring
ale to mi samozřejmě nejde, natahne to vzdy EAN prvniho zaznamu a ne dle vyberu
a preco nepouzit TDBEdit

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6867
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:DBCombobox pri zmene zmena udaju v tabulce
« Odpověď #6 kdy: 12-11-2022, 12:58:42 »
OT: Kony veľmi rád používa neštandardné postupy. V tom ďaleko prekonáva :D
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.