Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Bir objeye referans veren belirli tipte bir objenin parametrelerine erişimi sağlar. Bir A objesine referans veren B objesi, A objesinin içerisinden refs('B') fonksiyonu ile çağırıldığı çağrıldığı zaman projede bulunan A objesine bağlı B objelerinin listesini verir. Bir objenin kendinden sonra gelecek olan başka objeyi tanıması ve buna göre bazı parametrelerini daha sonradan düzenlemesi için kullanılabilir. "Private objesini " Objesini kullanırken önceki objelerle iletişim kurmak gibi refs fonksiyonunda da kendinden sonraki objelerle iletişim kurmaya yarar.

Örnek:

Code Block
languagexml
themeEclipse
<O N="Obje1" T="Project" Category="REFS">
   <P N="en" V="1000" Role="Input" />
   <P N="boy" V="500" Role="Input" />
   <P N="LocX" V="2000" Role="Input" />
   <P N="LocY" V="0" Role="Input" />
   <P N="LocZ" V="0" Role="Input" />
   <O N="vol1" T="Volume">
       <O T="Surface" Z="-yukseklik+LocZ">
           <O T="Point" X="-en/2+LocX" Y="-boy/2+LocY" />
           <O T="Point" X="-en/2+LocX" Y="boy/2+LocY" />
           <O T="Point" X="en/2+LocX" Y="boy/2+LocY" />
           <O T="Point" X="en/2+LocX" Y="-boy/2+LocY" />
       </O>
       <O T="Surface" Z="LocZ">
           <O T="Point" X="-en/2+LocX" Y="-boy/2+LocY" />
           <O T="Point" X="-en/2+LocX" Y="boy/2+LocY" />
           <O T="Point" X="en/2+LocX" Y="boy/2+LocY" />
           <O T="Point" X="en/2+LocX" Y="-boy/2+LocY" />
       </O>
   </O>
   <O T="Export">
       <P N="yukseklik" V="Z1" />
       <P N="OO" V="refs('Obje2')" D="Bu objeye referans veren tum obje2ler" />
       <P N="ObjeYuksekligi" V="OO[0]" T="Obje2" />
       <P N="Z1" V="iif(ObjeYuksekligi .EQ. NULL,1000,(ObjeYuksekligi.height))" T="Group" />
       <P N="Point1" V="toglobal(Refline)[0]" />
       <P N="Point2" V="toglobal(Refline)[1]" />
       <O N="Refline" T="Volume" Z="LocZ">
           <O T="Point" X="-en/2+LocX" Y="-boy/2+LocY" />
           <O T="Point" X="en/2+LocX" Y="boy/2+LocY" />
       </O>
   </O>
</O>


Yukarıdaki örnekte iki obje bulunmaktadır. Obje1 ve Obje2 objeleri birbirlerine eklenmektedir. Obje1 App'de ilk çağrılan obje, Obje 2 ise onun referans çizgisine göre üzerine oturmaktadır. Bunları Objeler Arası İletişim'de incelemiştik. Şimdi ise ilk obje çağrıldıktan sonra gelecek olan ikinci objeye göre yüksekliğini ayarlamasını istiyoruz. Bunu ilk objeye ikinci objeyi tanıtarak yaparız. İlk Objede kodu yazarken, App'egitmesi için dışa aktarılan(export) objesi altına Obje2'yi tanıtırız.

Örnek:

Code Block
languagexml
themeEclipse
<P N="OO" V="refs('Obje2')" />


İfadesinde OO adlı parametreyi Obje2'nin verdiği referansa eşitlemek demek, Obje2'i gelecekte bir yerde gördüğün zaman tanı demektir.

Örnek:

Code Block
languagexml
themeEclipse
<P N="ObjeYuksekligi" V="OO[0]" />


İfadesinde ilk objenin yüksekliğini bu ikinci objeye göre ayarlamak için bunu OO adlı parametrenin ilk seçilenine seçilene eşitleriz.

Örnek:

Code Block
languagexml
themeEclipse
<P N="Z1" V="iif(ObjeYuksekligi .EQ. NULL,1000,(ObjeYuksekligi.height))" T="Group" />


İfadesinde Z1 değeri eğerki Objeyuksekliği ( OO'nun yani Obje2'nin ilk seçileni) yoksa 1000 al, varsa Obje2'ye git ve onun parametresi olan height değerini al demektir.
Daha sonra Obje2 de Obje1 çağrılarak yükseklik ayarlanmış olur.

Örnek:

Code Block
languagexml
themeEclipse
<O N="Obje2" T="Project" Category="REFS">
   <P N="lokX" V="0" Role="Input" />
   <P N="lokY" V="0" Role="Input" />
   <P N="height" V="200" Role="Input" />
   <P N="KK" V="Obje1" T="Obje1" Role="Input" />
   <O T="ParamInfo" Min="1" Max="1" Required="1" Pick="1" Param="KK" />
   <O T="Volume" X="lokX" Y="lokY">
       <O T="Surface" X="KK.LocX" Y="KK.LocY" Z="KK.LocZ">
           <O T="Point" X="-height/2" Y="-height/2" />
           <O T="Point" X="height/2" Y="-height/2" />
           <O T="Point" X="height/2" Y="height/2" />
           <O T="Point" X="-height/2" Y="height/2" />
       </O>
       <O T="Surface" X="KK.LocX" Y="KK.LocY" Z="height+KK.LocZ">
           <O T="Point" X="-height/2" Y="-height/2" />
           <O T="Point" X="height/2" Y="-height/2" />
           <O T="Point" X="height/2" Y="height/2" />
           <O T="Point" X="-height/2" Y="height/2" />
       </O>
   </O>
   <O T="Private">
       <O N="Obje1" T="Obje1">
           <P N="en" V="1000" />
           <P N="boy" V="500" />
           <P N="LocX" V="2000" />
           <P N="LocY" V="0" />
           <P N="LocZ" V="0" />
           <P N="yukseklik" V="Z1" />
           <P N="OO" V="refs('Obje2')" />
           <P N="ObjeYuksekligi" V="OO[0]" T="Obje2" />
           <P N="Z1" V="iif(ObjeYuksekligi .EQ. NULL,1000,(ObjeYuksekligi.height))" T="Group" />
           <P N="Point1" V="toglobal(Refline)[0]" />
           <P N="Point2" V="toglobal(Refline)[1]" />
           <O N="Refline" T="Volume" Z="LocZ" Exported="1">
               <O T="Point" X="-en/2+LocX" Y="-boy/2+LocY" />
               <O T="Point" X="en/2+LocX" Y="boy/2+LocY" />
           </O>
       </O>
   </O>
</O>

...