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

stvaranje novih objekata

[es] :: Visual Basic 6 :: stvaranje novih objekata

[ Pregleda: 2214 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon stvaranje novih objekata02.03.2008. u 15:29 - pre 196 meseci
Pozdrav svima ;)

ovako imam jedan Shape (krug),e sad klikom na dugme on mi stvori na formi npr 5 istih takvih shape-ova na formi a pozicija novog shape-a je random,to znam da uradim samo mi je problem kako kopirati ves postojeci Shape.Kao u wordu sto ima CTRL + D ;)

ako nije jasno recite

TNX
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.168.*



+1 Profil

icon Re: stvaranje novih objekata02.03.2008. u 16:38 - pre 196 meseci
Moras prvo da stavis da ti prvi shape(krug) od koga svi drugi nastaju ima index 0
pa posle jednostavno stavis load shape za 5 krugova:
Code:

dim shape2 as shape
for t = 1 to 5
load shape2
next t

E sad ja sam ovo radio davno pa ako ne radi isprobavaj malo, ali je ta logika. Radio sam to kada sam pravio neki server za komunikaciju a sada nemam instaliran VB pa toliko od mene.
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: stvaranje novih objekata02.03.2008. u 17:10 - pre 196 meseci
hvala ;)
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: stvaranje novih objekata02.03.2008. u 17:27 - pre 196 meseci
ako sam dobro shvatio,trebalo bi ovako,medjutim ne radi...

Code:
Dim Y As Integer, X As Integer
Dim X as Integer,Y as Integer
Dim shape2 As Shape
For I = 1 To 30
Randomize
Y = Int((5040 * Rnd) + 120)
X = Int((6960 * Rnd) + 240)
Load shape2
shape2.Left = X
shape2.Top = Y
shape2.Shape = 0
shape2.Width = 135
shape2.Height = 135
Next I


"Object Variable or With block Not Set" se javlja na "Load shape2"
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: stvaranje novih objekata02.03.2008. u 17:50 - pre 196 meseci
ne mozes sa Load shape2, ovako dinamicki dodajes kontrole:
Code:

Dim newShape As Shape
Set newShape = Me.Controls.Add("VB.Shape", "dynshape")
newShape.move(10, 10, 100, 100)
newShape.Visible = TRue


a ako hoces to u petlji onda ovako nesto:
Code:

Dim newShape As Shape
Dim i As Long

For i = 1 To 10
   Set newShape = Me.Controls.Add("VB.Shape", "dynshape" & i)
   newShape.move(10, 10 * i, 100, 100)
   newShape.Visible = TRue
Next

 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.168.*



+1 Profil

icon Re: stvaranje novih objekata02.03.2008. u 18:27 - pre 196 meseci
Ne niste uhvatili poentu, ili bar ja nisam dobro objasnio.

Prvo taj Shape od koga svi ostali nastaju mora biti sa indexom. To ti je ono da kad kopiras taj shape1 on nije shape2 nego shape1(1).
Prvo moras da stavis DIM SHAPE1(X) AS OBJECT ' X je max broj objekata
Sa komandom Load ti samo ucitavas objekt, sto znaci da ce on kad se ucita imati preslikana podesavanja od onog shape1 od kog je nastao. Samo pazi da ne preteras sa brojem objekata jer ces prepuniti memoriju. Za "izbacivanje" objekata iz memorije moras koristiti Unload Shape1(X)

Ako ti ni sada nije jasno napisi, pa cu da instaliram VB pa da napisem primer, pa da ti postavim...
Pozdrav.

Zapravo evo vec instaliram VB.... Stize primer....
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.168.*



+1 Profil

icon Re: stvaranje novih objekata02.03.2008. u 19:06 - pre 196 meseci
Evo ga primer:

Radi 100%! Testirano ...

Code:

dim shape(255) as object
Private Sub Form_Load()
    For t = 0 To 5
        Set shape(t) = Shape1
    Next t
End Sub

I posle svaki shape(t) mozes da koristis, bez ikakvih problema, kao da si ga nacrtao...
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: stvaranje novih objekata02.03.2008. u 19:12 - pre 196 meseci
tako vec moze, mada primer koji sam ja dao ne zahteva da na formi postoji objekat, mada je kod ovog tvog primera event-handling mnogo laksi (ako se koristi metod koji sam ja naveo mora da se pravi dodatna klasa za svaki tip objekta ako hoces da imash event handlere) ali je meni ipak ovaj sa Controls.Add elegantniji :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.168.*



+1 Profil

icon Re: stvaranje novih objekata03.03.2008. u 01:32 - pre 196 meseci
I ovde ne mora da postoji objekt ali onda ide:
Code:

Dim Shape1 As VB.Shape

ispred svega. Samo sto onda svi parametri tog objekta moraju da se postavljaju rucno, znaci lakse je kad vec postoji jedan.
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: stvaranje novih objekata03.03.2008. u 12:19 - pre 196 meseci
Radi ;)

Hvala vam puno :D
 
Odgovor na temu

[es] :: Visual Basic 6 :: stvaranje novih objekata

[ Pregleda: 2214 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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