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

Pristup promenljivoj preko refleksije

[es] :: .NET :: Pristup promenljivoj preko refleksije

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Pristup promenljivoj preko refleksije04.12.2008. u 10:17 - pre 187 meseci

Potrebno mi je da preko imena stavke u meniju na formi promenim promenljivu u stavki.

Tj ako mi je dat meni, koji sadrzi redom drop-down stavke "O programu", "Help","Test",... Da preko imena
stavke, helpToolStripMenuItem, promenim vrednost promenljive "Visible".


I naravno sve to preko refleksije.


Moguce je odraditi preko iteracije kroz stavke menija, ali mi je to neprakticno jer neke stavke imaju vise nivoa, pa bih morao koristiti rekurziju, sto bi mi bilo jako neprakticno. Pretpostavljam da se preko refleksije resavau 2-3 reda.
 
Odgovor na temu

bunker
Srđan Savković
Smederevo

Član broj: 4495
Poruke: 239
212.5.210.*



Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 10:56 - pre 187 meseci
Ja te uopste nisam razumeo. Da promenis svojstvo "Visible" na cemu?


Nije važno stići prvi. Važno je prvo da stigneš.
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 11:12 - pre 187 meseci
Mozda je bolje da primer i sliku.



Pitanje:

Kako preko refleksije promeniti vrednost Visible na "About Mozila Firefox" ako imam samo ime te promenljive,
tj. aboutToolStripItem. (string)


 
Odgovor na temu

bunker
Srđan Savković
Smederevo

Član broj: 4495
Poruke: 239
212.5.210.*



Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 11:28 - pre 187 meseci
Hoces da promenis Visible te stavke menija?

Ako je tako
Code:
this.Menu.MenuItems[aboutToolStripItem].Visible = false 


Ako je ovo, zasto refleksijom?
Nije važno stići prvi. Važno je prvo da stigneš.
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 11:44 - pre 187 meseci
Snimam u bazu podatke vezane za vidljivost menija, svaki korisnik ima privilegije i na osnovu njih ima pristup opcijama programa. E sad da bih sakrio stavke menija koristim imena promenljivih.


Na tvoj nacin, koliko sam sad isprobao, mogu tako pristupiti samo pocetnim stavkama, tj. File,Edit,View,....


Inace glavni meni je tipa MenuStrip. I ima samo clan Items. Nema clan MenuItems.

 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 13:28 - pre 187 meseci
Da odgovorim samom sebi:

Code:


 ((ToolStripMenuItem)typeof(GlavnaForma).GetField(opcija, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(this)).Visible = false;

 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
...137.15-dsl.net.metronet.hr.



+19 Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 14:58 - pre 187 meseci
Citat:
Igor Gajic: Snimam u bazu podatke vezane za vidljivost menija, svaki korisnik ima privilegije i na osnovu njih ima pristup opcijama programa. E sad da bih sakrio stavke menija koristim imena promenljivih.


Na tvoj nacin, koliko sam sad isprobao, mogu tako pristupiti samo pocetnim stavkama, tj. File,Edit,View,....


Inace glavni meni je tipa MenuStrip. I ima samo clan Items. Nema clan MenuItems.


za svakog korisnika u bazi napravi privilegije za stavke menu-a, i sa običnim "selectom" učitaš stavke i kreiraš menu.

kad ti netko klikne na stavku proslijediš string, u bazu stavime ime dll file i ime forme koja se nalazi u tom dll file-u.

proslijediš string učitaš dll te sve objekte i pozoveš formu koja je dodana u bazi za određenu stavku.
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
77.46.207.*



+987 Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 15:12 - pre 187 meseci
@MarkoBalkan

Zanimljivo. Na taj nacin se onda dobija potpuno modularna aplikacija. Tj. korisnik moze da kupi delove programa(DLL) koji mu omogucuju odredjenu funkcionalnost i ako ima taj dll onda mu pokaze meni za te opcije i ima potpunu funkcionalnost...
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
...137.15-dsl.net.metronet.hr.



+19 Profil

icon Re: Pristup promenljivoj preko refleksije04.12.2008. u 19:31 - pre 187 meseci
recimo imaš tablicu menu u bazi, sa popisom i strukturom.


onda ti treba tablica, korisnici,
pa tablica privilegije
pa tablica sa popisom dll fileova i formi (1 ili 2 tablice)

i nakraju tablice koje sadrže ono što ti treba.

sad je MS izdao scsf (smart client software ....) upravo za ovakvu namjenu, kažem svaki može koristiti svoju ideju.
dll fileovi se pokupi kad korisnik klikne na neku stavku u menu-u i time preko refleksije pozove dll i pozove formu iz dll file-a.



drugi način je da posebno napraviš dll file-ove i ubaciš kao reference, sve ostalo isto, ali onda ti ne treba refleksija.



recimo kod pythona nemaš refleksije imaš ali za takve stvrai se ne koristi jer ne treba.

dovoljno je samo imports modula i to je to i imaš pristup onome što ti treba.

a kod .net, prvo referenca pa onda još imports.
 
Odgovor na temu

[es] :: .NET :: Pristup promenljivoj preko refleksije

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

Postavi temu Odgovori

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