Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi

[es] :: .NET :: .NET Desktop razvoj :: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi

[ Pregleda: 2430 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.dynamic.isp.telekom.rs.

ICQ: 66444502


+47 Profil

icon vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 17:42 - pre 148 meseci
Zelim da sa jednom funkcijom popunim podatke iz baze za vise kontrola, konkretno ComboBox-ova. Nekad se ova funkcija pozove za samo jedan combo a nekad za vise.

Ja sam pokusao da napravim tako da kao parametar u definiciji funkcije napisem da primam niz od ComboBox-ova na ovaj nacin:
Code (vbnet):

Public Sub fill(ByVal Combos() As ComboBox)
   For Each Combo As ComboBox in Combos
        Combo.AddItem("nesto")
   Next Combo
End Sub
 


E sad, ja ne znam da li je ovo OK i kako da pozovem sada ovu funkciju kada joj zelim predati vise combobox-ova?

Ja sam probao ovako:
Code (vbnet):

Call fill({combo1,combo2})
 


Ali nece tako...
Molim pomoc.
 
Odgovor na temu

galahad
Slobodan Todorov
Radio-televizija Vojvodine,
Jack-Of-All-IT-Trades, Web redakcija
Novi Sad

Član broj: 20613
Poruke: 146
*.dynamic.sbb.rs.

Jabber: galahad@elitesecurity.org
ICQ: 52020296
Sajt: www.todorowww.net


+4 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 18:00 - pre 148 meseci
Moraćeš da napraviš niz koji onda sadrži sve comboe koje želiš da proslediš. Nisam iskusan sa .Net, pa ne mogu da ti dam primer koda koji bi radio. Kad popuniš taj niz comboima, proslediš ga toj proceduri.
- SKRati link - JaZaKraljevo.rs -

"I have never let my schooling interfere with my education." - Mark Twain
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.dynamic.isp.telekom.rs.

ICQ: 66444502


+47 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 18:40 - pre 148 meseci
Nisam te bas najjasnije shvatio, ali mi se cini da bi takav nacin vise zakomplikovao kod nego da napravim dve ili tri procedure koje ce podacima puniti isti broj kontrola.
Nego, ja sam burlao nesto i nasao sam da je u .NET/u niz od kontrola tzv "collection" pa sam napisao ovako:
Code (vbnet):

Private Sub fill(ByVal combos As Collection)
'isto telo procedure kao prethodno
End Sub
 

Ali i dalje ne znam kako da posaljem informaciju o tome koje ja to ComboBox-ove zelim napuniti toj proceduri...

Kako da u samom prosledjivanju parametara (u letu) napravim niz?
Recimo

Code (vbnet):

Call fill(Dim niz_combo As ComboBox = {frm1.Combo1, frm2.Combo2})
 

 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.dynamic.isp.telekom.rs.

ICQ: 66444502


+47 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 20:52 - pre 148 meseci
Joj ljudi poludecu...
Bas sam se zeznuo...
Napravio sam sledecu stvar, pre svakog poziva procedure definisem privremeni niz u koji dodajem koliko je god potrebno kontrola i onda pozovem tu proceduru i njoj prenesem taj niz.
Ovo radi, ali mi je aplikacija izgubila mnoooogo na brzini. Sumnjam da je to zbog toga sto se svaki put definise novi niz i to ide sporo.
Pa zar je moguce da ne postiji neki nacin da pri pozivu procedure prenesem niz...
Zar je ovaj VB toliko glup?
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.dynamic.isp.telekom.rs.

ICQ: 66444502


+47 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 21:46 - pre 148 meseci
OK, odlucio sam da problem resim na sledeci nacin.
Naisao sam na ovu funkciju koja pronadje kontrolu na osnovu njenog imena:
Code (vbnet):

Public Function GetControlByName(ByVal Name As String, _
                                            ByVal CurrentForm As Form) As ComboBox
        Dim info As System.Reflection.FieldInfo = _
            CurrentForm.GetType().GetField("_" & Name, _
                System.Reflection.BindingFlags.NonPublic Or _
                System.Reflection.BindingFlags.Instance Or _
                System.Reflection.BindingFlags.Public Or _
                System.Reflection.BindingFlags.IgnoreCase)
        If info Is Nothing Then
            Return Nothing
        Else
            Return CType(info.GetValue(CurrentForm), ComboBox)
        End If
End Function
 

Pregledao sam ceo kod i primetio da se maksimalno pune 3 ComboBox-a u isto vreme sa istim podacima, te cu stoga napraviti proceduru da prima jedan obavezni parametar i jos dva opcionalna kao i jos jedan parametar koji je naziv forme na kojoj se nalazi Combo.
Nadam se da cu ovim uspeti da odrzim brzinu aplikacije i pojednostavim kod. Sada imam 4 procedure koje sa ISTIM podacima puni razlicite ComboBox-ove, od kojih dve pune dva Combo u isto vreme a jedna cak tri.

Ima li neko nesto da doda, predlozi?
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
109.94.104.*



+20 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 22:10 - pre 148 meseci
Parametri mogu da se predaju f-ji po vrednosti (ByVal) i po adresi (ByRef). Kada je u pitanju parametar tipa niza combobox-ova, umesto pravljenja kopije vrednosti celog niza koja ko zna koliko zauzima, prenosi se samo int podatak o adresi tog niza koji si kreirao van f-je. Prenos po adresi je mnogo brzi i mozda ti bash to pomogne, poshto koliko sam video u ovim kodovima shto si okachio, svugde je prenos po vrednosti. U kom VB-u pishesh ovo ? 2008 ?
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.dynamic.isp.telekom.rs.

ICQ: 66444502


+47 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 22:35 - pre 148 meseci
Da, znam da mogu i po adresi ali to mi nikako nije jasno kako se koristi.
Da naglasim, ja NE ZELIM da kreiram nikakve nizove combobox-ova pre poziva procedure koja ih puni podacima! Previse mi je to posla i ne cini mi se da ce kod biti lepsi.
Odradio sam onako kako sam napisao u prethodnoj poruci i dobro je ispalo. Radi manje vise isto kao kada sam imamo vise procedura za vise ComboBox-ova.
Znaci ja pozovem funkciju za punjenje i prosledim joj parametre koje sve ComboBox-ove zelim da punim (preko String promenjivih koje su opcinalne) i prenesem Form na kojoj se ta kontrola nalazi, ona izvuce podatke iz baze i onda pozove onu gore navedenu funkciju, pronadje kontrolu koja se trazi i onda joj pritupi i prosledi podatke.
I da, VB 2008 SP1 je.
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 22:49 - pre 148 meseci
Trebalo bi da se koristi isto, samo umesto ByVal, stoji ByRef . Kod ti
mozda nece biti lepshi, ali postoji velika razlika. S'obzirom da ne znam
detalje toga shto pravish i shta i kako stoji, mozda ti ovo nije losha
ideja: napravi proceduru koja puni samo jedan combo box, i josh jednu
funkciju koja prolazi kroz formu i trazi ostale combobox-ove i kako naidje
na combobox, kopira u njega sadrzaj iz prvog comboboxa preko metode
comboBox.Items.AddRange (ovo je u C#, trebalo bi da postoji nesto slichno
za VB, ili isto, mada ono shto si ti koristio AddItem je u C# Items.Add,
pa sad ti vidi/potrazi).
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.dynamic.isp.telekom.rs.

ICQ: 66444502


+47 Profil

icon Re: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi24.09.2010. u 23:00 - pre 148 meseci
Ma pravim neku KAO knjigovodstvenu aplikaciju.
Vidi, nije ti to losa ideja mora ti priznati, da prekopiram iz jednog postojeveg Combo-a u druge... Samo, ne popunjavaju se oni u isto vreme... kada se pokrene pocetna forma ne popuni se ni jedan, tek kada se otvori forma za unos onda se popunjava jedan Combo koji MORA biti azuran sa obazom, znaci njega moram UVEK da popunjavam iznova. Ostali se isto popunjavaju kako kad, u zavisnosti koja se forma kada otvori. Mogao bi sebi zakomplikovati zivot takoo sto bi napunio jedan Combo (moze biti i skriven) i onda iz njega puniti ostale ukoliko nije bilo promene u bazi u medjuvremenu, ali gotovo je sada.
Posto ovo radim za diplomski, smatram da je ovoliko dovoljno, bitno mi je samo da mi kod nije bas toliko ruzan.
Kada prodje diplomski, ako keva bude htela da koristi ovu aplikaciju moracu je skro doraditi da bude OK.
hvala ti, poz.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: vb 2008 procedura treba da primi dva ili vise parametara u vidu kontrola na formi

[ Pregleda: 2430 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.