IT NEWS PC REVUE PC FORUMInternet time: @645
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Hry - obchod ProGamingShop.sk

Obrovský výber hier na PC a konzoly za neskutočne nízke ceny. Skladom. www.progamingshop.sk

Potrebujete hotovosť ?

Jednoduché, výhodné a rýchle pôžičky od spoločnosti Profi Credit! www.proficredit.sk

Garantovaná najnižšia cena

PZP Genertel pre autá nad 70 kw a do 2250 kg. Akcia platí iba do 15. 2.! www.genertel.sk

Právnické eso

Študenti práva a právnici, ukážte sa. Vyhrajte tablet, smartfón a iné ceny! www.najpravo.sk

Originálny valentínsky darček

Limitovaná edícia darčekovej karty v exkluzívnom valentínskom balení. www.unicreditbank.sk

ComboBox a využitie z pohľadu MySQL

Zaslať odpoveď
AutorSpráva
Manny
Užívateľ
Užívateľ

Založený: 30.09.2009
Príspevky: 61

PríspevokZaslal: Pi 18.06.10 13:46Odpovedať s citátomNávrat hore

Zdravím,

tí, čo ste niekedy programovali v PHP, tak viete, že combobox sa dá napísať cez kód:

kód:
<select name="moj_box">
  <option value="raz">Prvá možnosť</option>
  <option value="dva">Druhá možnosť</option>
</select>


V Delphi si môžem vytvoriť combo a nasypať tam itemy cez:

kód:
ComboBox1.Items.Add('Prvá možnosť');
ComboBox1.Items.Add('Druhá možnosť');


Otázka teraz znie: Ako sa dopracujem k výsledku ako pri PHP? To znamená, že keď zvolím možnosť "Prvá možnosť", combo mi vráti hodnotu "raz"? Combo vracia len ItemIndex, takže je moja jediná šanca? Mám teda ísť obklukou cez ItemIndex a niekde inde si definovať, že 0 = "raz", 1 = "dva"? Ak to je tak, tož v tomto prípade môže ľahko vzniknúť problém, ak sa nastaví preusporiadanie prvkov.

Vďaka za názory a reakcie. Prajem pekný deň.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Pi 18.06.10 14:02Odpovedať s citátomNávrat hore

1, prvy kod je HTML a nie PHP
2, metoda Add by mala mat aj druhy parameter typu TObject. zadefinujes si novy object napr TComboVal ten nech ma jeden field typu string a instanciu takehoto objektu budes davat ako druhy parameter metody Add. skus sa inspirovat tu http://delphi.about.com/od/vclusing/a/items_addobject.htm
Zobraziť informácie o autoroviOdoslať súkromnú správu
Manny
Užívateľ
Užívateľ

Založený: 30.09.2009
Príspevky: 61

PríspevokZaslal: Pi 02.07.10 8:30Odpovedať s citátomNávrat hore

coldak, vďaka za odpoveď uvažujem ešte nad jednou alternatívou. spraviť si do comboboxu (ak sa to dá), ďalší zoznam (TStrings), ktorý by "išiel" súčasne s Items. V Items by sa nachádzali položky, ktoré sa zobrazia a v tom druhom liste by boli interné hodnoty. Identifikovať by sa dali cez ItemIndex.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Pi 02.07.10 8:36Odpovedať s citátomNávrat hore

jasne, kedysi som to tiez tak robieval ze som si vytvoril novy objekt odvodeny od TComboBox a do neho dorobil doplnujuci zoznam . kludne to urob aj tak, aspon si precvicis vytvaranie noveho objektu
Zobraziť informácie o autoroviOdoslať súkromnú správu
Manny
Užívateľ
Užívateľ

Založený: 30.09.2009
Príspevky: 61

PríspevokZaslal: Št 29.07.10 11:56Odpovedať s citátomNávrat hore

Len taká otázka... nikdy som neupravoval/nevytváral komponentu. Vedel by mi niekto poradiť ako vytvoriť duplicitnú komponentu z TComboBox-u akurát by mala tieto 3 funkcie naviac:

kód:
AddInternal(TComboBox, 'Text, čo sa vykreslí v ComboBoxe - string', 'interná hodnota, napr. IDčko - string'); // zadanému comboboxu pridá ďalší riadok s internou hodnotou
SetInternal(TComboBox, 'interná hodnota'); // nastaví ako "selected" zadanú internú hodnotu danému combobxu
GetInternal(TComboBox) : string; // vráti aktuálne označenú internú hodnotu
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 909

PríspevokZaslal: Št 29.07.10 12:42Odpovedať s citátomNávrat hore

kód:
TNewCombo = class(TComboBox)
  public
    AddInternal(TComboBox, 'Text, čo sa vykreslí v ComboBoxe - string', 'interná hodnota, napr. IDčko - string'); // zadanému comboboxu pridá ďalsí riadok s internou hodnotou
    SetInternal(TComboBox, 'interná hodnota'); // nastaví ako "selected" zadanú internú hodnotu danému combobxu
    GetInternal(TComboBox) : string; // vráti aktuálne označenú internú hodnotu
end;

Už len dopísať definície členských funkcií.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Št 29.07.10 13:39Odpovedať s citátomNávrat hore

ak ta tato tema zaujima viac tak odporucam knihu http://www.martinus.sk/?uItem=1372 alebo serial na webe http://delphi.about.com/library/bluc/text/uc080701a.htm
Zobraziť informácie o autoroviOdoslať súkromnú správu
Manny
Užívateľ
Užívateľ

Založený: 30.09.2009
Príspevky: 61

PríspevokZaslal: Št 29.07.10 15:29Odpovedať s citátomNávrat hore

Díky chlapi Idem naštudovať.
Mimochodom tie členské funkcie "hovoria", čo všetko má tá funkcia robiť? Teda členská funkcia = jadro? Nemám tieto termíny ešte osvojené.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 909

PríspevokZaslal: Št 29.07.10 16:56Odpovedať s citátomNávrat hore

Členské funkcie sú funkcie zapuzdrené v triede. Čiže napríklad Form1.Show alebo aj Form1.OnClick, ktorú si vytvoríš pre ošetrenie kliknutia na TButton.

A keďže ty si nejaké nové členské funkcie pridal do deklarácie triedy (AddInternal, SetInternal, GetInternal), tak ich ešte treba definovať - čiže napísať ich telo, napr:

kód:
procedure AddInternal( x: TComboBox);
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Št 29.07.10 17:08Odpovedať s citátomNávrat hore

Fico napísal:
Členské funkcie sú funkcie zapuzdrené v triede. Čiže napríklad Form1.Show alebo aj Form1.OnClick, ktorú si vytvoríš pre ošetrenie kliknutia na TButton.

A keďže ty si nejaké nové členské funkcie pridal do deklarácie triedy (AddInternal, SetInternal, GetInternal), tak ich ešte treba definovať - čiže napísať ich telo, napr:

kód:
procedure AddInternal( x: TComboBox);

suhlasim, len sa mi zda ze tam chyba prefix triedy, cize
kód:
procedure TNewCombo.AddInternal( x: TComboBox);
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 909

PríspevokZaslal: Št 29.07.10 17:09Odpovedať s citátomNávrat hore

Hops, vďaka za opravu.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Manny
Užívateľ
Užívateľ

Založený: 30.09.2009
Príspevky: 61

PríspevokZaslal: Pi 30.07.10 8:08Odpovedať s citátomNávrat hore

Vďaka za odpovede, našiel som aj celkom dlhý a kvalitný seriál v offline verzii od Václava Kadleca, kde je tiež vysvetlené vytváranie komponent (aj pre iných, ak by mal niekto podobné nejasnosti).

Umíme to s Delphi (offline):
http://umime-to-s-delphi.wz.cz/s_reg/setup/setup.zip
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF