OOP vs prosedürel programlama - sayfa 27

 
Реter Konow :
İşlevsel prosedürel programlamada, tanımladığınız erişim sorunları mevcut değildir. Fonksiyon aşırı yüklemesi olmadan, alanlar ve nesneler olmadan, işaretçiler ve diğer şeyler olmadan, tüm global değişkenler için her yerden erişebileceğiniz tek bir hafızanız olduğunda, yanlış fonksiyon nasıl çağrılabilir? Hangi erişimle ilgili hatalar oluşabilir? Ve evet, hatırlaması çok daha kolay.

Evet, en basit hata, değere yakın bir değer içeren yanlış değişkene atıfta bulunmaktır.

Böyle bir hata çok uzun bir süre tespit edilemeyebilir, ancak ortalamalık yasasına göre, bu yerde hatasız çalışmanın çok gerekli olacağı zamanda “sürünerek” ortaya çıkacaktır!

Ve bunu hesaplamak çok zor olacak... EA'nın ticareti neden iyi bir trendde kapattığını, TS'nin - hiçbir şekilde kapatmaması gerekirken - ve yapamadığını anlamaya çalışıyorsunuz. Her şey düzgün çalışıyor gibi görünüyor.

Bunlar en nahoş hatalardan sadece biri - değişkenlerin başlatılmaması veya yanlış olana erişim, ancak yakın değer. Ve programın bir bölümünde veya başka bir bölümünde ne kadar fazla değişken mevcutsa, böyle bir hata olasılığı o kadar artar.

Evet, elbette, küresel olarak kullanılabilen bir grafik çekirdeğiniz varsa ve bu yerdeki siparişlerle çalışıyorsanız, yanlış değişkene erişmek gerçekten zor. Ancak, göstergelere ve muhtemelen kullanıcı eylemlerine yöneldiğiniz bir sipariş açma ihtiyacını belirlediğiniz önceki bir blokta, değişkenleri karıştırmak zaten oldukça mümkündür.

Sadece sistemin tüm yapısını bellekte tutuyorsunuz ve burada herhangi bir sorun görmüyorsunuz. Daha fazla yapı varsa, bu önemli incelikler periyodik olarak bellekten kaybolacaktır, küresel erişimin bir sorun kaynağı olduğu ve kullanımından mümkün olan her şekilde kaçınılması gerektiği sonucuna kendiniz varacaksınız. Ve kod, mümkün olduğunca az hatırlamak için gerekli olacak şekilde yazılmalıdır. İdeal olarak, bellekte hiçbir şey saklamayın - her bloğun işlevinden bahseden bir adı vardır, girişte bu işlev için gerekli ve yeterli verileri alır, yalnızca işlevi uygulamak için kalır, başka hiçbir bilgiyi çekmez "dışarıdan".

 
George Merts :

Evet, en basit hata, büyüklük olarak yakın bir değer içeren yanlış değişkene atıfta bulunmaktır.

Böyle bir hata çok uzun bir süre tespit edilemeyebilir, ancak ortalamalık yasasına göre, bu yerde hatasız çalışmanın çok gerekli olacağı zamanda “sürünerek” ortaya çıkacaktır!

Ve bunu hesaplamak çok zor olacak... EA'nın ticareti neden iyi bir trendde kapattığını, TS'nin - hiçbir şekilde kapatmaması gerekirken - ve yapamadığını anlamaya çalışıyorsunuz. Her şey düzgün çalışıyor gibi görünüyor.

Bunlar en nahoş hatalardan sadece biri - değişkenlerin başlatılmaması veya yanlış olana erişim, ancak yakın değer. Ve programın bir bölümünde veya başka bir bölümünde ne kadar fazla değişken mevcutsa, böyle bir hata olasılığı o kadar artar.

Evet, elbette, küresel olarak kullanılabilen bir grafik çekirdeğiniz varsa ve bu yerdeki siparişlerle çalışıyorsanız, yanlış değişkene erişmek gerçekten zor. Ancak, göstergelere ve muhtemelen kullanıcı eylemlerine yöneldiğiniz bir sipariş açma ihtiyacını belirlediğiniz önceki bir blokta, değişkenleri karıştırmak zaten oldukça mümkündür.

Sadece sistemin tüm yapısını bellekte tutuyorsunuz ve burada herhangi bir sorun görmüyorsunuz. Daha fazla yapı varsa, bu önemli incelikler periyodik olarak bellekten kaybolacaktır, küresel erişimin bir sorun kaynağı olduğu ve kullanımından mümkün olan her şekilde kaçınılması gerektiği sonucuna kendiniz varacaksınız. Ve kod, mümkün olduğunca az hatırlamak için gerekli olacak şekilde yazılmalıdır. İdeal olarak, bellekte hiçbir şey saklamayın - her bloğun işlevinden bahseden bir adı vardır, girişte bu işlev için gerekli ve yeterli verileri alır, yalnızca işlevi uygulamak için kalır, başka hiçbir bilgiyi çekmez "dışarıdan".

Kahretsin, hepsi farklı çağrıldıysa, yanlış değişkene nasıl başvurabilirsin? Benzersiz bir ada sahipse ve aşırı yük yoksa yanlış işlev nasıl çağrılabilir? Çekirdek dizisinin içinde, tüm hücre dizinleri insan sözcükleri ile tanımlanır. Burada ne karıştırılabilir? Anlayın, bahsettiğiniz sorunlar HİÇBİR ZAMAN mevcut değil.


Bellekte sadece çok basit olan çekirdeğin yapısını tutuyorum. Ayrıca nesnelerin özelliklerinin listesini de biliyorum. Tüm nesnelerin özellikleri aynıdır, sadece değerleri farklıdır. Toplamda 140 mülk var ama sadece en önemlilerini aklımda tutuyorum, yaklaşık 30 adet, gerisini gerektiğinde hatırlıyorum. Bunun için tanımlı dosyaya gidiyorum ve özelliklerin tam listesine bakıyorum. Karmaşık bir şey yok. "OBJECT" veya "WINDOW" gibi odaklanmış global değişkenlerin hiç belleğe alınmasına gerek yoktur. Ve hiçbir şeyle karıştırmak imkansız.

Değişkenlerimin Rusça'da anlamlı isimleri var. Bir şeyi ancak fırtınalı bir partiden sonra karıştırabilirsiniz.))
 

Genel değişkenlerim , odakta kullanılan, çekirdeği "hedefleyen" ve imleç hareket ettirildiğinde onun üzerinde hareket eden değişkenlerdir.

Örneğin: "WINDOW" değişkeni her zaman imlecin bulunduğu pencerenin numarasını taşır. "OBJECT" değişkeni, imlecin bulunduğu nesnenin numarasıdır.

Onlar aracılığıyla çekirdeğe - çekirdekteki belirli bir pencereye, nesneye ve özelliğe - G_CORE[WINDOW][OBJECT][_NAME] veya G_CORE[WINDOW][OBJECT][_OBJECT_GROUP] erişirim. Herhangi bir fonksiyonda, bir nesnenin X koordinatına ihtiyacım olursa, nesnenin yüksekliği G_CORE[WINDOW][OBJECT][_Y_SIZE] ve yakında...


Toplamda, ayrı ayrı bildirilen yaklaşık yüz global değişkenim var, ancak her dizi hücresi bir değişken olduğundan, çekirdek global dizisinde bunlardan binlerce var. Ancak, bu sayıda değişkeni yönetmek, sıralı oldukları için çok kolaydır. Çekirdekteki her pencere bir dizi alanıdır, her satır 140 özellikten oluşan bir nesnedir. Bu durumda öğeler, nesnelerin koleksiyonlarıdır. Her öğenin, tüm öğenin ana özelliklerini içeren bir ana nesnesi vardır. Belirli bir öğeye ait olan nesneler, özel dizinlerle birbirine bağlanır, bu nedenle odakta olan nesne ne olursa olsun, ait olduğu öğe de odaktadır. Ayrıca üzerine çizildiği tuval. Çekirdeğin açık mimarisi ve herhangi bir fonksiyondan doğrudan erişim sayesinde, çekirdek dizisinin hücreleri olan binlerce değişkeni hiçbir şeyi unutmadan ve kendimi özgürce yönlendirerek yönetebiliyorum.

 
СанСаныч Фоменко :

Tamamen anlamsız konuşma: Kodu "iyi" veya "kötü" olarak sınıflandırmak için bir kriter yoktur . Bu yüzden OOP hakkında net değil.

Benim için böyle bir kriter, kodun GÖRÜNÜRLÜĞÜ'dür; bu, yazarın veya üçüncü şahıs bir kişinin oldukça uzun bir süre sonra kodu okuyabileceği ve değişiklik için kullanabileceği, arayacağı gerçeğinde kendini gösterir. hatalar .....


Yukarıda, Fedoseev OOP anahtarını değiştirdi. Benim için başarısız olabilecek bu özel örnek, OOP'nin kısırlığının kanıtıdır: 100 konumlu bir anahtarla açıklayıcı bir kod bir satırla değiştirilir. Bu çizgiyi anlamak için bir yere tırmanmanız gerekiyor. Benim için bu kabul edilebilir bir şey değil.

George Merts'in üstündeki ikinci örnek

Hata ayıklamadan sonra açıklayıcı kod açıklayıcı olmayan kodla değiştirildiğinde. Ölçütüme göre, yüksek kaliteli kod (okunması kolay) benim için geçersiz bir kodla değiştirildi.


Bu nedenle, tüm OOP destekçilerine bir sorum var: OOP kullanıldığında program daha görsel hale geliyor mu ve Fedoseev'in anahtar üzerinde verdiği örnek başarısız mı yoksa tam tersi, Fedoseev'in örneği OOP ve OOP'yi çok doğru bir şekilde karakterize ediyor ve OOP neredeyse her zaman yol açıyor görünürlük kaybı?


SS ile her şey açık. Onun anlayış seviyesinin üzerinde olan her şey sevgilidir. Ama R harfini biliyor))))))))))))))

 
Alexey Volchanskiy :

SS ile her şey açık. Onun anlayış seviyesinin üzerinde olan her şey sevgilidir . Ama R harfini biliyor))))))))))))))

Ayrıca OOP'ye Çince de ekleyeceğim, belki Japonca ...

Neden OOP? NE daha iyi olacak?

Görselleştirme, hata ayıklamanın, değiştirmenin basitleştirilmesidir. Görünürlük, dikkatli program tasarımından , NESNELER yerine FONKSİYONLARA yapılandırılmasından gelir, çünkü tüm dünya nesneler üzerindeki eylemler etrafında inşa edilmiştir, tersi değil.

Fonksiyonlara ayırma, girdi verilerinin çıktı verilerine dönüşüm dizisinden geldiği zaman. Örneğin, bir teklifin bir girdiden bir AL|SAT çıktısına dönüştürülmesi, yalnızca EYLEMLER'in gösterilmesiyle mümkündür.

İnsan zihni böyle çalışır.


not.

R hakkındaki yorumunuzla ilgili olarak.

Şaka yapmak ister misin?

Nadiren cevap veririm ama cevaplayabilirim

 
Реter Konow :

Kahretsin, hepsi farklı çağrıldıysa, yanlış değişkene nasıl başvurabilirsin? Benzersiz bir ada sahipse ve aşırı yük yoksa yanlış işlev nasıl çağrılabilir? Çekirdek dizisinin içinde, tüm hücre dizinleri insan sözcükleri ile tanımlanır. Burada ne karıştırılabilir? Anlayın, bahsettiğiniz sorunlar HİÇBİR ZAMAN mevcut değil.

Valla benim de böyle bir kaç vakam oldu.

Çoğu zaman, bu tür hatalar, bir kod parçasını başka bir yerden kopyaladığınızda ve mevcut bloğa göre "düzelttiğinizde" meydana gelir. Global erişiminiz varsa, değişkenlerden birini değiştirmeyi atlayabilirsiniz. Yalnızca bu durumda çalışmanız gereken şey sizin için mevcutsa - kopyalamadan sonra - derleyicinin kendisi size değiştirilmesi gereken tüm değişkenlerin ve yerlerin bir listesini verir.

Peter Konow'un fotoğrafı.

Bellekte sadece çok basit olan çekirdeğin yapısını tutuyorum. Ayrıca nesnelerin özelliklerinin listesini de biliyorum. Tüm nesnelerin özellikleri aynıdır, sadece değerleri farklıdır. Toplamda 140 mülk var ama sadece en önemlilerini hafızamda tutuyorum, yaklaşık 30 adet, gerisini gerektiğinde hatırlıyorum. Bunun için tanımlı dosyaya gidiyorum ve özelliklerin tam listesine bakıyorum. Karmaşık bir şey yok.

30 mülk ??? Pekala, bu benim için kabul edilemez. Onları hatırlayamadığımdan değil ama hafızaya güvenmek istemiyorum. Her blokta her zaman tam olarak bu blokta işlenmesi gereken değişkenlere sahip olduğunuzda ve diğerlerine erişiminiz olmadığında çok daha iyidir.

Ama hatırlama ihtiyacı canımı sıkıyor... Ve sizin için zor olmadığı için fazladan OOP jestleri yapmanın bir anlamı olmadığı gayet anlaşılır.

 
George Merts :

Valla benim de böyle bir kaç vakam oldu.

Çoğu zaman, bu tür hatalar, bir kod parçasını başka bir yerden kopyaladığınızda ve mevcut bloğa göre "düzelttiğinizde" meydana gelir. Global erişiminiz varsa, değişkenlerden birini değiştirmeyi atlayabilirsiniz. Bu durumda yalnızca çalışmanız gerekenlere erişiminiz varsa, kopyaladıktan sonra derleyicinin kendisi size değiştirilmesi gereken tüm değişkenlerin ve yerlerin bir listesini verir.

30 mülk ??? Pekala, bu benim için kabul edilemez. Onları hatırlayamadığımdan değil ama hafızaya güvenmek istemiyorum. Her blokta her zaman tam olarak bu blokta işlenmesi gereken değişkenlere sahip olduğunuzda ve diğerlerine erişiminiz olmadığında çok daha iyidir.

Ama hatırlama ihtiyacı canımı sıkıyor... Ve sizin için zor olmadığı için fazladan OOP jestleri yapmanın bir anlamı olmadığı gayet anlaşılır.


Dürüst olmak gerekirse, birçok şey hatırlıyorum. Her biri bir nesnenin diğerine göre konumunu tanımlayan _X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C, vb. nesne bağlamalarının yalnızca kısaltmaları nelerdir? A1, B1, C1, A2, B2, C2, A3, B3, C3, A4, B4, C4, A5... 100 parametrelerindedirler. Örneğin, yapı bloğunda düzinelerce işlev vardır ve 4000'den fazla kod satırı işgal eder. Bilinmesi ve hatırlanması gereken çok şey var. Ancak ezberleme, uzun süreli uygulamadan hemen değil, yavaş yavaş ortaya çıkar. Önceleri, varlıkların sayısı ve kodun boyutundan kafam şişmişti, ama sonra her şey sıkıştırıldı ve basitleşti.

 
Реter Konow :

Dürüst olmak gerekirse, birçok şey hatırlıyorum. Yalnızca nesne bağlamalarının kısaltmaları nelerdir _X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C, vb. her biri bir nesnenin diğerine belirli bir konumunu tanımlar, A1, B1 parametrelerindedir. C1, A2 , B2, C2, A3, B3, C3, A4, B4, C4, A5 ... Ayrıca birkaç düzine kategori adını ve nesne alt kategorilerini, birkaç düzine pencere özelliğini hatırlıyorum. 100 tanesi). Örneğin, yapı bloğunda düzinelerce işlev vardır ve 4000'den fazla kod satırı işgal eder. Bilinmesi ve hatırlanması gereken çok şey var. Ancak ezberleme, uzun süreli uygulamadan hemen değil, yavaş yavaş ortaya çıkar. Önceleri, varlıkların sayısı ve kodun boyutundan kafam şişmişti, ama sonra her şey sıkıştırıldı ve basitleşti.


dikkatiniz dağılsın, her şeyi unutun, bir aylığına tatile gidin, kodu düşünmeyin. Geldikten sonra tüm bunları görün a1, b1, vb. ve histerik olsun :)

 
Alexey Oreshkin :

dikkatiniz dağılsın, her şeyi unutun, bir aylığına tatile gidin, kodu düşünmeyin. Geldikten sonra tüm bunları görün a1, b1, vb. ve histerik olsun :)

Örneğin, ön-çekirdekteki "onay kutusu" öğesi şöyle görünür:

_OBJECTS_SET, CHECKBOX,
//============================================================================================================================================================================================================================================================================================================================================================================================================================================
//------------T------X----Y----W-----H----B_TYPE-- MOB---PXL-----------G-----C------SG---SC--OBJSCR--NEUTRAL-----------A1--B1--C1-----------A2----B2--C2----------A3----B3--C3--------A4--B4--C4-------OBH--OBI--C5--D5--E5--------------------------------------------------------------------------------------------------------------ACT-STATUS--CURRENT-----CURRENT---LAST--------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Основание чекбокса--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_NEW_OBJECT,   5 ,     0 ,   0 ,   200 ,   17 ,  _STRIP,  _CNVS,     0 ,    _aq1,CHECKBOX,   0 ,_MOB,   0 ,    _aq1,  _NS_gr1,   A1,  _C2C,_CNVS, 0 ,  A2,  _C2C,_CNVS, 0 ,    A3,_W2T, _aq3,   30 ,      A4,   0 , 0 ,   0 ,    A5, 0 ,   0 ,   0 ,   0 ,   0 ,   A6,   0 ,      A7, 1 ,    _aq1, CHECKBOX,         0 ,         0 ,         0 ,         0 ,         0 ,       0 ,       0 ,       0 ,         0 ,         0 ,       0 ,       0 ,   A8,   0 ,   0 ,   0 ,   A9, _OBJECT_RELEASED, _NS_gr1,   0 ,   0 ,   0 ,     0 ,     0 ,     0 ,   _PL_END,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Лейбл чекбокса--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_NEW_OBJECT,   5 ,     0 ,     0 ,   0 ,     0 , _LABEL,  _CNVS,     0 ,    _aq2,CHECKBOX,   0 ,   0 ,   0 ,    _aq1,  _NS_gr3,   A1,  _X2X,_aq1, 0 ,   A2,  _Y2Y,_aq1,   0 ,    A3,   0 ,   0 ,   0 ,      A4,   0 , 0 ,   0 ,      A5, 0 ,_CHECKBOX_OFF, 0 ,   0 ,   0 ,   A6,   0 ,    A7, 2 ,    _aq1,         0 ,         0 ,         0 ,         0 ,         0 ,     0 ,       0 ,       0 ,       0 ,         0 ,         0 ,       0 ,       0 ,       A8,   0 ,   0 ,   0 ,  A9, _OBJECT_RELEASED, _NS_gr4,  _CHECKBOX_ON,   0 ,   0 ,   _NS_gr5,   _NS_gr6,    _NS_gr7,   _NS_gr7, _PL_END,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Наименование чекбокса--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_NEW_OBJECT,   5 ,     0 ,     0 ,   0 ,     0 , _TEXT_,  _CNVS,     0 ,    _aq3,CHECKBOX,_OCN,   0 ,   0 ,    _aq1,  _NS_gr2,   A1,  _X2X,_aq1, 25 ,   A2,  _Y2Y,_aq2,   2 ,    A3,   0 ,   0 ,   0 ,      A4,   0 , 0 ,   0 ,     A5, 0 ,   0 ,   0 ,   0 ,   0 ,   A6,   0 ,              A7, 3 ,    _aq1,         0 ,         0 ,         0 ,         0 ,         0 ,     0 ,       0 ,       0 ,       0 ,         0 ,         0 ,       0 ,       0 ,       A8,   0 ,   0 ,   0 ,   A9, _OBJECT_RELEASED, _NS_gr2,   0 ,   0 ,   0 ,    _NS_gr9,    _NS_gr9,    _NS_gr10,   _NS_gr10,    _PL_END,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_END_,
//============================================================================================================================================================================================================================================================================================================================================================================================================================================

//_NEUTRAL_STATE
//====================================================================================================================================================================================================================================================
//             X           Y        PIXEL_0     ALFA_0     PIXEL_1      ALFA_1    PIXEL_2     ALFA_2     PIXEL_3     ALFA_3       PIXEL_4     ALFA_4      PIXEL_5     ALFA_5        PIXEL_6     ALFA_6    PIXEL_7     ALFA_7
//====================================================================================================================================================================================================================================================
_NS_gr1,       0 ,           0 ,         0 ,         0 ,         - 1 ,         - 1 ,        - 1 ,        - 1 ,         - 1 ,         - 1 ,          - 1 ,        - 1 ,          - 1 ,         - 1 ,           - 1 ,         - 1 ,         - 1 ,        - 1 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================

//==========================================================================================================================================================================================================================================
//-------------X-----------Y--------TEXT COLOR-----TEXT_ALFA   FONT----FONT SIZE-----ANGLE------POSITION----------STYLE---------------------------------------------------------------------------------------------------------------------------------------       
//==========================================================================================================================================================================================================================================
_NS_gr2,     0 ,           0 ,           clrBlack ,         255 ,       1 ,       10 ,         0 ,     TA_LEFT | TA_TOP ,     FW_NORMAL ,        - 1 ,         - 1 ,         - 1 ,          - 1 ,      - 1 ,         - 1 ,        - 1 ,           - 1 ,        - 1 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//=======================================================================================================================================================================================================================================
//==========================================================================================================================================================================================================================================
//-------------X-----------Y--------TEXT COLOR-----TEXT_ALFA   FONT----FONT SIZE-----ANGLE------POSITION----------STYLE---------------------------------------------------------------------------------------------------------------------------------------       
//==========================================================================================================================================================================================================================================
_NS_gr9,     0 ,           0 ,           clrBlue ,         155 ,       1 ,       10 ,         0 ,     TA_LEFT | TA_TOP ,     FW_NORMAL ,        - 1 ,         - 1 ,         - 1 ,          - 1 ,      - 1 ,         - 1 ,        - 1 ,           - 1 ,        - 1 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//=======================================================================================================================================================================================================================================
//==========================================================================================================================================================================================================================================
//-------------X-----------Y--------TEXT COLOR-----TEXT_ALFA   FONT----FONT SIZE-----ANGLE------POSITION----------STYLE---------------------------------------------------------------------------------------------------------------------------------------       
//==========================================================================================================================================================================================================================================
_NS_gr10,     0 ,           0 ,       C'150,150,150' ,     255 ,       1 ,       10 ,         0 ,     TA_LEFT | TA_TOP ,     FW_NORMAL ,        - 1 ,         - 1 ,         - 1 ,          - 1 ,      - 1 ,         - 1 ,        - 1 ,           - 1 ,        - 1 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//=======================================================================================================================================================================================================================================


//LABEL _NEUTRAL_STATE
//====================================================================================================================================================================================================================================================
//             X           Y        PIXEL_0     ALFA_0     PIXEL_1      ALFA_1       PIXEL_2     ALFA_2        PIXEL_3     ALFA_3         PIXEL_4       ALFA_4           PIXEL_5     ALFA_5        PIXEL_6     ALFA_6    PIXEL_7     ALFA_7
//====================================================================================================================================================================================================================================================
_NS_gr3,       0 ,           0 ,     C'255,255,255' ,   255 ,   C'253,253,253' ,   255 ,     C'80,80,80' ,   255 ,         C'140,140,140' , 255 ,       C'200,200,200' ,   255 ,         C'245,245,245' ,   255 ,     C'240,240,240' ,   255 ,       0 ,     0 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================

//LABEL _ACTIVATED_STATE
//====================================================================================================================================================================================================================================================
//             X           Y        PIXEL_0     ALFA_0     PIXEL_1      ALFA_1       PIXEL_2     ALFA_2        PIXEL_3     ALFA_3         PIXEL_4       ALFA_4           PIXEL_5     ALFA_5        PIXEL_6     ALFA_6   PIXEL_7     ALFA_7
//====================================================================================================================================================================================================================================================
_NS_gr4,       0 ,           0 ,     C'255,255,255' ,   255 ,   C'253,253,253' ,   255 ,     C'80,80,80' ,   255 ,         C'140,140,140' , 255 ,       C'200,200,200' ,   255 ,         C'245,245,245' ,   255 ,     C'240,240,240' ,   255 ,       0 ,       0 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================

//_OBJECT_NEUTRAL_HIGHLIGHTED
//====================================================================================================================================================================================================================================================
//             X           Y        PIXEL_0     ALFA_0     PIXEL_1      ALFA_1       PIXEL_2     ALFA_2        PIXEL_3     ALFA_3         PIXEL_4       ALFA_4           PIXEL_5     ALFA_5        PIXEL_6     ALFA_6    PIXEL_7     ALFA_7
//====================================================================================================================================================================================================================================================
_NS_gr5,       0 ,           0 ,     clrWhite ,   255 ,         clrWhite ,     255 ,     C'80,80,80' ,   255 ,         C'140,140,140' , 255 ,       C'200,200,200' ,   255 ,         C'245,245,245' ,   255 ,     C'240,240,240' ,   255 ,       clrBlue ,       255 ,          _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================

//_OBJECT_ACTIVATED_HIGHLIGHTED
//====================================================================================================================================================================================================================================================
//             X           Y        PIXEL_0     ALFA_0     PIXEL_1      ALFA_1       PIXEL_2     ALFA_2        PIXEL_3     ALFA_3         PIXEL_4       ALFA_4           PIXEL_5     ALFA_5        PIXEL_6     ALFA_6    PIXEL_7     ALFA_7
//====================================================================================================================================================================================================================================================
_NS_gr6,       0 ,           0 ,     C'255,255,255' ,   255 ,   C'253,253,253' ,   255 ,     C'80,80,80' ,   255 ,         C'140,140,140' , 255 ,       C'200,200,200' ,   255 ,         C'245,245,245' ,   255 ,       C'240,240,240' ,   255 ,       clrBlue ,       255 ,         _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================

//_OBJECT_NEUTRAL_BLOCKED/ACTIVATED_BLOCKED
//====================================================================================================================================================================================================================================================
//             X           Y        PIXEL_0     ALFA_0     PIXEL_1      ALFA_1       PIXEL_2     ALFA_2        PIXEL_3     ALFA_3         PIXEL_4       ALFA_4           PIXEL_5     ALFA_5        PIXEL_6     ALFA_6    PIXEL_7     ALFA_7
//====================================================================================================================================================================================================================================================
_NS_gr7,       0 ,           0 ,     C'245,245,245' ,   255 ,   C'245,245,245' ,   255 ,     C'180,180,180' ,   255 ,         C'180,180,180' , 255 ,       C'200,200,200' ,   255 ,         C'245,245,245' ,   255 ,       C'235,235,235' ,   255 ,         C'245,245,245' ,   255 ,         _PL_END,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================
 
Bu, 30'dan fazla elementten sadece biri. Üstelik en küçüklerinden biri. Ama şaşırtıcı olan şey, onu açık bir kitap gibi okudum. Neyin ne olduğunu açıklamakta zorluk çekmiyorum. Bir başka garip şey de, benzer öğelerin çok hızlı bir şekilde, diğer benzer öğelerin kopyala-yapıştır kullanılarak ve bazı değişiklikler yapılarak oluşturulmasıdır. Korkunç görünüyor, ama aslında çok kolay.