[ manix @ 01.08.2007. 19:25 ] @
Da li je izvodljivo i na koji nacin?

imam panel i na recimo dupli klik hocu da napravi dva ista takva sa istim osobinama - prosta reprodukcija
kada na jedan od ta dva nova uradum dupli klik "hocu da napravi dva ista takva sa istim osobinama "
i tako u nedogled ?

Nije li ovo malo cudno :o)???

Mozda je bolje da vam ja iznesem problem.
Pravim program za PVC stolariju... imam dakle panel koji treba da se deli po volji...
recimo osnovi podelim na 1-2 dela vertilano i sad treba jedan od tih da izdelim kao sto sam i osnovni i tako dalje...

PRORACUNE sam zavrsio ali imam problem sa tim crtanjem! Ja imam neko resenje.
Osnovni panel ima u sebi 5 skrivenih panela i svaki od tih 5 ima u sebi 5 i tako jos jednom
ali sam tu ogranicen na dubini podele a i mnogo je objekata...

STA mislite da li je bolje za ovo koristiti grafiku umesto panela koji u sebi sadrze slicice koje iscrtavaju okvire ili nesto sto korisnik odredi za taj panel???
PS sa grafikom sam slab ali bi se potrudio ako je to bolje resenje

HVALA unapred.
[ vujkev @ 01.08.2007. 19:42 ] @
Ja to vidim ovako:

Na početku imaš jedan objekat (panel) koji ima 4 bitne karakteristike: X, Y, Width i Height. Na početku x i y imaju vrednost 0, a width i height imaju vrednost veličine cele ploče.

Kad hoćeš da podeliš ploču jednostavno smanjiš width ili height početne ploče gde hoćeš da isečeš i napraviš novi objekat (panel) koji kao vrednost x i y ima koordinate odakle počinje ta ploča (gde je isečeno), a width ili height postaviš tako da zajedno sa pločom koji si smanjio čine početnu ploču.

i tako do .....


P.S. Možda jesi, a možda i nisi, ali da podestim: Da li si uračunao rez koji pravi testera?
[ Shadowed @ 01.08.2007. 20:24 ] @
Mora li da bude bas panel? Mozda je bolje da koristis PictureBox i iscrtavas linije a istovremeno u memoriji pamtis mesta rezova (prvo sluzi za vizuelni prikaz, drugo za konkretni rad).
[ manix @ 02.08.2007. 02:12 ] @
Citat:
vujkev: Kad hoćeš da podeliš ploču jednostavno smanjiš width ili height početne ploče gde hoćeš da isečeš i napraviš novi objekat (panel) koji kao vrednost x i y ...


OK! To je i bilo pitanje kako napraviti novi objekat i prekopirati karakteristike???

Treba mi neki kod tipa pocetni objekat se deli da dva dela pomocu 'events' a kako seve to primeniti nakreirani obj.
Zapravo ne znam ni da kreiram novi panel pomocu objekte... :o(

Evo okacio sam nesto... pa pogledajte. Sada to treba da usavrsavam ali trazim pravi put.
[ bunker @ 02.08.2007. 10:57 ] @
Na razumem se bas u tu vrstu delatnosti, ali mi se tvoje resenje cini simpaticnim.

Ovo nemoj da zaboravis:
Citat:
P.S. Možda jesi, a možda i nisi, ali da podestim: Da li si uračunao rez koji pravi testera?


ALi sad, ja mislim da te nisam najbolje razumeo za ovo :
Citat:

Zapravo ne znam ni da kreiram novi panel pomocu objekte... :o(


Da li bi trebalo da se pored prozora (ali pvc prozora) kog sam nacrtao u tvojoj aplikaciji pojavi jos jedan, isti ili slican?
Ako je ovako, preporucujem ti da napravis user kontrolu koja ce da radi posao, a u kontejner (koji ma dimenzije ploce) dodajes onoliko tih kontrola koliko ti treba.

Ali ja mislim da mi nije najjasnije sta hoces da izvedes.
[ Pharos @ 02.08.2007. 11:56 ] @
Ne razumem se u ovu oblast (PVC stolarija) ali da kažem i ja nešto sa programerske tačke gledišta.
Prvo što se tiče crtanja, možeš da crtaš na čemu hoćeš (panel, picture box, bilo koja kontrola), a meni se lično najviše sviđa na panelu. Zašto? Nemam pojma, baš je fancy :)
Ne možeš panel samo da prevučeš na formu i da crtaš. Panelu kao takvom, nije moguće override-ovati OnPaint metodu, već moraš da napraviš svoju User Control-u koja nasleđuje klasu panel. I u konstruktoru svoje klase staviš DoubleBuffered na true i onda će crtanje da radi kako treba, tj. neće biti podrhtavanja slike i sl.
Sve što crtaš, crtaj u protected override OnPaint. Nemoj koristiti Paint event iz designera! Užasno je spor.

Kada želiš da napraviš više instanci tvoje kontrole koje se ponašaju gotovo identično kao ona prethodna, onda tvoja kontrola mora da implementira interfejs ICloneable. I u public object Clone() vraćaš koloniran objekat. To je verovatno niz nekih tačaka potrebnih Paint metodi za iscrtavanje.
Malo izguglaj kako se to tačno radi, nije ništa komplikovano, a postoji dosta različitih primera kloniranja.

Znači rešenje tvog problema:
User Controla sa svojim metodama za crtanje i implementiranim ICloneable interfejsom za kloniranje.

Sad možeš da ga budžiš i ovako i onako, ali ovo ti je najjednostavnije i najelegantnije rešenje, a provereno radi.

pOz