Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 15 odgovora
  • 7.122 pregleda

Najnovija ↓

Circular UNIT reference, problem 19.11.2004. u 00:22 · pre 267 meseci #1
POzdrav

Kao sto sam naslov kaze imam problem sa Circular Unit referencom...
evo o cemu se radi...

Imam 3 Klase: A, B, i C
Imam 2 Unita: Unit1 i Unit2

E sada,
Klasa A ima u sebi promenjivu koja je tipa Klase C.
Klasi B ima isto promenjivu tipa Klase C
Klasa C ima 2 promenjive Tipa klasa A i B

klase A i C su u Unit1 a B je u unit 2.

Problem je kako resiti problem Circular Unit referenca..
Ako ih stavim sve u jedan unit opet imam problem jer mi Forward Decleration klase tu nikako ne pomaze jer imam 3 ispovezivane klase...

Ima li neko neku ideju?

pozdrav svima

Potpis
www.cikloberza.com --- www.freeclimbing.org.yu --- www.vertikal.org.yu --- www.yuzvuk.com
Re: Circular UNIT reference, problem 19.11.2004. u 01:40 · pre 267 meseci #2
sama po sebi je struktura cirkularna, mislim da ne moze to tako da funkcionise. jel mora da bude tako komplikovano?? nigde ne mozes da definises pojam preko njega samog
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Circular UNIT reference, problem 19.11.2004. u 04:51 · pre 267 meseci #3
Iz klase C izbaci sve promenjljive iz klasa A i B, i napravi C1 koja nasljedjuje C, a u njoj dodaj promenjljive iz klasa A,B tacno one koje si izbacio iz C.

Re: Circular UNIT reference, problem 19.11.2004. u 11:38 · pre 267 meseci #5
'Ako ih stavim sve u jedan unit opet imam problem jer mi Forward Decleration klase tu nikako ne pomaze jer imam 3 ispovezivane klase...'

Forward declaration JOS KAKO pomaze; u jednom unit-u mozes da uradis sve.

Rajko

Re: Circular UNIT reference, problem 19.11.2004. u 11:47 · pre 267 meseci #6
evo u cemu je problem sa Forward decleration...

pisem na primer ovako:

Code:

type klasaC = class;  // Forward decl.

type klassaA = class
...
end;

// ovde bi trebalo da ide Forward Decl. klase B, ali to nije dozvoljeno...

Type KlasaC = class //klasa C
...
end;



Konkretno u mom primeru imam 2 threada. Thread1 i Thread 2
I imam jednu klasu.

Threadovi imaju u sebi promenjivu:
Owner : TKlasa;

a Klasa ima u sebi 2 promenjive:

Thread1 : TThread1;
Thread2 : TThread2;

Potpis
www.cikloberza.com --- www.freeclimbing.org.yu --- www.vertikal.org.yu --- www.yuzvuk.com
Re: Circular UNIT reference, problem 19.11.2004. u 12:26 · pre 267 meseci #7
Stavi forward declaration za SVE tri klase odmah na pocetak

type
klasaA = class;
klasaB = class;
klasaC = class;

pa tek onda nastavi sa punom deklaracijom
Re: Circular UNIT reference, problem 19.11.2004. u 20:57 · pre 267 meseci #12
evo kako može (provjereno na d7):

unit Unit2;

interface

type
klasa1 = class;
klasa2 = class;
klasa3 = class;

klasa1 = class
Proba: integer;
p1: klasa2;
p2: klasa3;
end;

klasa2 = class
Proba: integer;
p1: klasa1;
p2: klasa3;
end;

klasa3 = class
Proba: integer;
p1: klasa1;
p2: klasa2;
end;
Re: Circular UNIT reference, problem 19.11.2004. u 23:09 · pre 267 meseci #14
Kako mislis sve cu srediti sa jednim postom?



Sto se tice Forward declarationa.
U pravu ste, radi sve. Usled silnog sastavljanja klasa u jedan UNIT potkralo mi se jedno Type vise, pa je zbog toga izbacivo gressku...

pozdrav
Potpis
www.cikloberza.com --- www.freeclimbing.org.yu --- www.vertikal.org.yu --- www.yuzvuk.com
Re: Circular UNIT reference, problem 19.11.2004. u 23:36 · pre 267 meseci #15
Pa mislio sam tako, sto svi zelimo da ti pomognemo, a samo nagadjamo o strukturi tvojih klasa. Da si okacio kod, neko bi odmah ispravio greske. Eto samo toliko.

Pozdrav
Re: Circular UNIT reference, problem 20.11.2004. u 00:58 · pre 267 meseci #16
Ok. kapiram ;)

Hvala puno svima na pomoci.

Sto se tice forward declarationa, ja sam bio ubedjen da sam nedge procito da
mora biti ispostovan redosled o kome sam piso. Al eto ispostavilo se da sam
pogresno mislio a pored toga imo i gresku u kodu...
Jedino nemogu jos da razumem da ne postoji nacin da se ostave klase u
zasebnim unitima a da se nekako izbegne Circular reference...

Al dobro sta je tu je.. Stavio sam sve u jedan Unit, i sad radi...

pozdrav svima
Potpis
www.cikloberza.com --- www.freeclimbing.org.yu --- www.vertikal.org.yu --- www.yuzvuk.com
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme