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

Pozivanje objekta bez kreiranja instance

[es] :: .NET :: Pozivanje objekta bez kreiranja instance

Strane: 1 2

[ Pregleda: 4335 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Vasić

Član broj: 14756
Poruke: 631
*.verat.net

Jabber: ivasic@elitesecurity.org


Profil

icon Pozivanje objekta bez kreiranja instance08.10.2003. u 20:24 - pre 249 meseci
C# .NET
Recimo da imam formu i na njoj obican textBox i dugme. Klikom na dugme otvaram NOVU formu sa istim objektima (textBox i btn). Zelim da u novoj formi u textBox upisem neku vrednost i da klikom na btn izadjem a vrednost koju sam upisao da se pojavi na "staroj" formi. E ovo nisam uspeo da resim.
Jedini nacin koji C# nudi jeste kreiranje instance (normalna stvar) i onda lako spojis tekstove ta dva objekta. Evo na sta mislim :

Kod je u dogadjaju btn.Click nove forme :
Code:
 
frmGlavna frm = new frmGlavna();
frm.textBox.Text = this.textBox.Text();
frm.Show();


ALI ovim se pokazuje duplikat glavne forme sa trazenim vrednostima a plus jos postoji i ona od malopre. Moze naravno da se ugasi ta visak forma ali to nije resenje koje mi treba.
Problem UPROSCEN :
Da li je moguce i kako manipulisati objektima i svojstvima forme (uopsteno bilo kog objekta) ali BEZ kreiranja instance ?
To je recimo prosta stvar u Delphi-ju samo ukucas kod gde izjednacavas sta zelis i gotova stvar ali ovde nije tako.

Inace za odgovor sam ostao uskracen i od stranaca na forumu ASP.NET ... dal nisu znali ili je nemoguce ili mrze Srbe - ne znam
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
*.ptt.yu

ICQ: 101830817


+314 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 20:39 - pre 249 meseci
a sto jednostavno ne napravis globalnu promenjivu ???

"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


+5 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 20:43 - pre 249 meseci
niko ne mrzi srbe. (tj, dobro ajde, retko ko mrzi srbe ;)

ovo što ti hoćeš ne može ni u Delphiju.

nego, daj ti primer koda koji ti radi u delphiju, pa ću ti ja ili već neko prevesti na .net


 
Odgovor na temu

Ivan Vasić

Član broj: 14756
Poruke: 631
*.verat.net

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 20:50 - pre 249 meseci
Citat:
Deep|Blue:
a sto jednostavno ne napravis globalnu promenjivu ???


Da ? Primer ?

A sto se tice Delphi-ja nemam ga trenutno tako da ne mogu da probam ali se secam da kad sam radio nesto u njemu (pre neku godinu) - sa ovim nije bilo problema.

[Ovu poruku je menjao Dragi Tata dana 08.10.2003. u 15:11 GMT]
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


+5 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 20:59 - pre 249 meseci
ovo kako si ti zamislio ne može ni u današnjem, niti je moglo u verziji 1.0


[Ovu poruku je menjao Dragi Tata dana 08.10.2003. u 15:11 GMT]
 
Odgovor na temu

Ivan Vasić

Član broj: 14756
Poruke: 631
*.verat.net

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 21:09 - pre 249 meseci
A opet sto se Delfija tice ne mogu da tvrdim dok ne probam a probacu i reci cu ti ako uspem.

Uzgred nisi razmotrio mogucnost da me nisi razumeo (ili da nisam lepo objasnio) sta sam hteo ?

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 21:14 - pre 249 meseci
Citat:
ivan@elfak:
Problem UPROSCEN :
Da li je moguce i kako manipulisati objektima i svojstvima forme (uopsteno bilo kog objekta) ali BEZ kreiranja instance ?


Hajde malo razjasni: kako to da manipulišeš svojstvima nečega ako to nešto ne postoji? Prvo kreiraš objekat, pa onda manipulišeš njime. Ili si mislio nešto drugo (onaj primer sa formom uopšte ne razumem)

 
Odgovor na temu

Ivan Vasić

Član broj: 14756
Poruke: 631
*.verat.net

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 21:20 - pre 249 meseci
Citat:
Dragi Tata:
Hajde malo razjasni: kako to da manipulišeš svojstvima nečega ako to nešto ne postoji? Prvo kreiraš objekat, pa onda manipulišeš njime. Ili si mislio nešto drugo (onaj primer sa formom uopšte ne razumem)


Pazi to nesto postoji i ucitano je u memoriju tj. forma je PRIKAZANA na ekranu !
Problem je kako iz DRUGE forme promeniti BILO STA na formi koja je VEC PRIKAZANA a ne da pravim NEW objekat.

Jel sam uspeo malo da razjasnim svoju konfuznu poruku ?


[Ovu poruku je menjao Dragi Tata dana 08.10.2003. u 15:14 GMT]
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 21:22 - pre 249 meseci
Što se tiče deljenja podataka između objekata istog tipa, moguće je naravno, npr.

private static string x;

Kad klikneš na dugme u prvoj formi, recimo ovo:
Code:

x = this.TextBox1.Text
Form1 f2 = new Form1();
f2.TextBox1.Text = x;
f2.ShowDialog();


Ako je to ono što si hteo. Naravno, dodeljivanje vrednosti svojstvima samog objekta a bez kreiranja objekta nije moguće. static se odnosi na klasu i dele ga svi objekti klase. static podacima i funkcijama može da se pristupa i bez instanci klase, ali to kako rekoh nije vezano za niti jedan objekt konkretno, već za klasu.

Pozdrav.



[Ovu poruku je menjao degojs dana 08.10.2003. u 17:35 GMT]
Commercial-Free !!!
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 21:25 - pre 249 meseci
Citat:
Problem je kako iz DRUGE forme promeniti BILO STA na formi koja je VEC PRIKAZANA a ne da pravim NEW objekat.


Pa dovoljno je da imaš referencu na objekt i da je svojstvo vidljivo, tj. dozvoljava promenu iz drugih objekata.

Konkretno, referencu možeš da proslediš prilikom kreiranja druge forme i to je to.

U prvoj formi npr. ovako nekako:

Code:

Form1 f2 = new Form1(this); // prosledi referencu na prvu formu
f2.ShowDialog();

Znači, samo odgovarajući konstruktor u Form1 i nema problema:
Code:

public Form1(Form1 f)
{
   InitializeComponent();
   System.Windows.Forms.MessageBox.Show(f.TextBox1.Text); // ispisuje tekst iz prve forme
}



/edit: ništa bitno izmenjeno - samo sam promenio forma u objekt da malo više generalizujem slučaj.

[Ovu poruku je menjao degojs dana 08.10.2003. u 17:44 GMT]
Commercial-Free !!!
 
Odgovor na temu

Ivan Vasić

Član broj: 14756
Poruke: 631
*.verat.net

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 21:40 - pre 249 meseci
Citat:
degojs:
Pa dovoljno je da imaš referencu na prvu formu i da je svojstvo vidljivo, tj. dozvoljava promenu iz druge forme. Referencu proslediš prilikom kreiranja druge forme i to je to.


Problem resen.

ustvari izgleda da nece. Evo sta sam uradio :
ovo se dogadja na Form1 neki btn.Click
Code:

Form2 frm = new Form2(this);
frm.Show();


pa onda u Form2
Code:

public Form2 (Form1 f)
{
..........
}


ali onda za f. - u padajucem meniju (intellisense menu) ne nalazim textBox niti bilo koju drugu kontrolu na formi 1. Mada moram da priznam ima mnogo vise svojstava nego bez ovog postupka.

Imas li ideju ? Ili sam negde zabrljao ?
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 22:09 - pre 249 meseci
Code:

class Form2 { 
    private Form1 MainFrm;
...

public Form2 (Form1 f)
{
    MainForm=f;
}

...

public onButtonClick( bla) {
    MainForm.bla.text=truc.text;
}




mada je ovo sve generalno glupo da druga forma pristupa glavnoj.

bolje potraži Form2.ShowModal() ili nešto slično (nemam .net, ali verovatno postoji), pa će izvršavanje prve forme pauzirati dok ne zatvoriš ovu drugu. kada je zatvoriš, lepo iz prve pročitaj text iz druge (referencu ka njoj već imaš), i upiši ga gde treba, i to je to
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Pozivanje objekta bez kreiranja instance08.10.2003. u 22:18 - pre 249 meseci
Citat:
ali onda za f. - u padajucem meniju (intellisense menu) ne nalazim textBox niti bilo koju drugu kontrolu na formi 1. Mada moram da priznam ima mnogo vise svojstava nego bez ovog postupka.


U konstruktoru svakako moraš da vidiš sve. Za ostale funkcije postupi ovako kako je zombi napisao. Ako slučajno neće, malo prodrmaj VS, može da se desi da intelisens poblesavi (mada, zaista retko u verziji 2003).
Commercial-Free !!!
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
*.ptt.yu

ICQ: 101830817


+314 Profil

icon Re: Pozivanje objekta bez kreiranja instance09.10.2003. u 00:06 - pre 249 meseci
I varijanta
probaj da na formi 2 event kojim ces ocitati textbox.text
event aktiviras pri izlasku sa forme 2

na formi 1 cekas event i preuzmes vrednosti koje je ocitao na frm2.

II varijanta
definises globalnu promenjivu tekst_2
na formi 2
u textbox1_leave eventu u promenjivu tekst_2 upises vrednost textbox-a

na formi 1 event on activated
stavis teksbox_meta.text = tekst_2
"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Pozivanje objekta bez kreiranja instance09.10.2003. u 00:38 - pre 249 meseci
Ne znam bas da li cu uspeti da izvedem ovo jer ne znam C# ali da pokusam:
Code:

Form2 frm = New Form2;
frm.Owner = This
frm.Show

Dalje u kodu za frm prvoj formi pristupas sa This.Owner.
 
Odgovor na temu

Ivan Vasić

Član broj: 14756
Poruke: 631
*.verat.net

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Pozivanje objekta bez kreiranja instance09.10.2003. u 13:52 - pre 249 meseci
E hvala na svim odgovorima probacu izgleda mi da moze na vise nacina ali ono sto sam hteo sam uspeo da napravim uz pomoc degojs-ovog odgovora.
Radi kao sto je on napisao samo sam ja zaboravio da predefinisem kontrole u "public" pa se zato nisu videle u intelisense meniju ..... a da uzgred VS2002 stvarno ume da poblesavi sto se tog menija tice ... ne znam gde da nadjem 2003...
Hvala u svakom slucaju
 
Odgovor na temu

mbran
Marko Brankovic
Managing director
Beograd

Član broj: 30907
Poruke: 54
*.eunet.yu

Sajt: www.puzzlesoftware.rs


Profil

icon Re: Pozivanje objekta bez kreiranja instance27.07.2004. u 00:20 - pre 240 meseci
Ja mislim, hocu da budem fin, hocu da kazem znam 100%, da jedini ko je bio u pravu je covek koji je rekao da ovaj problem treba da se resi koriscenjem Eventa.
Veoma je velika GRESKA da se u projektovanju programa bilo koji atribut (globalni)stavi kao Public. Svi atributi bi trebali da budu iskljcivo private ili protected, a ako hoces da pristupis tom atributu iz druge klase, onda se pravi takozvani Property koji je public. Ovo resenje preko eventa se u Design paternima inace naziva Mediator object.
 
Odgovor na temu

nervozica
Novi Beograd

Član broj: 18671
Poruke: 77
195.252.126.*



Profil

icon Re: Pozivanje objekta bez kreiranja instance27.07.2004. u 08:38 - pre 240 meseci
Kanda si malo zakasnio. Skoro pa godinicu :)
Djankam se, kuzish.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Pozivanje objekta bez kreiranja instance27.07.2004. u 09:08 - pre 240 meseci
Pa dobro, nemojte čoveka u glavu, nov je ovde. Dobar deo novih korisnika da svoj doprinos kroz odgovaranje na temu koja je bila aktuelna nekada davno, valjda u procesu pregledavanja tih tema. Odgovor možda više nije aktuelan/potreban, ali je važna dobra volja da se pomogne.

Sa druge strane, ne valja mnogo kopati po prošlosti, svašta mož' da se pojavi tamo mbran, bolje otvori novu temu ako imaš nešto zanimljivo da podeliš sa forumom ili hoćeš da započneš diskusiju oko neke zanimljive problematike, vraćanje postojeće teme iz prošlosti retko kad ima neke praktične svrhe.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

nervozica
Novi Beograd

Član broj: 18671
Poruke: 77
195.252.126.*



Profil

icon Re: Pozivanje objekta bez kreiranja instance28.07.2004. u 08:34 - pre 240 meseci
Sorry, nije mi namera bila da vredjam ili plasim. Pokusao sam (izgleda neuspesno) da ispadnem duhovit.
Djankam se, kuzish.
 
Odgovor na temu

[es] :: .NET :: Pozivanje objekta bez kreiranja instance

Strane: 1 2

[ Pregleda: 4335 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

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