OOP vs programmazione procedurale - pagina 27

 
Реter Konow:
Nella programmazione funzionale-procedurale, i problemi di accesso che descrivi non esistono. Senza funzioni di overloading, senza campi e oggetti, senza puntatori e cose del genere, quando si ha solo una memoria per tutte le variabili globali a cui si può accedere da qualsiasi luogo, come può essere chiamata la funzione sbagliata? Che tipo di errori di accesso possono verificarsi? Ed è molto più facile ricordare tutto.

Si tratta di un semplice errore: fare riferimento alla variabile sbagliata che contiene un valore vicino.

Un tale errore può rimanere inosservato per molto tempo, ma, per la legge della meschinità, "salta fuori" proprio nel momento in cui il lavoro senza errori in questo luogo sarebbe molto necessario!

E sarà oh così difficile da capire... Stai cercando di capire perché l'Expert Advisor ha chiuso un trade in un buon trend quando TS non avrebbe dovuto chiuderlo - e non ci riesci. Tutto sembra funzionare correttamente.

Questo è esattamente uno degli errori più sgradevoli - la non inizializzazione delle variabili, o l'indirizzamento di quella sbagliata, ma vicina per valore. E più variabili sono disponibili in questa o quella parte del programma - maggiore è la probabilità di questo errore.

Sì, certo, se avete un nucleo grafico globalmente accessibile, e lavorate con gli ordini, è davvero difficile accedere alla variabile sbagliata. Ma in un blocco precedente dove si rileva la necessità di aprire un ordine e di indirizzare gli indicatori per questo scopo e probabilmente secondo le azioni dell'utente - è abbastanza reale confondere le variabili.

Se ci sono più strutture, e dettagli importanti scompaiono periodicamente dalla memoria - si arriva alla conclusione che l'accesso globale - è una fonte di problemi, e si dovrebbe evitare di usarlo a tutti i costi. E che il codice dovrebbe essere scritto in modo tale da ricordare il meno possibile. Idealmente, non tenere nulla in memoria - ogni blocco ha un nome, che indica la sua funzione, all'ingresso riceve i dati necessari e sufficienti per questa funzione, tutto ciò che rimane è implementare la funzione senza coinvolgere altre conoscenze "dall'esterno".

 
George Merts:

Si tratta di un semplice errore: fare riferimento alla variabile sbagliata che contiene un valore vicino.

Un tale errore può rimanere inosservato per molto tempo, ma, per la legge della meschinità, "salta fuori" proprio nel momento in cui il lavoro senza errori in questo luogo sarebbe molto necessario!

E sarà oh così difficile da capire... Stai cercando di capire perché l'Expert Advisor ha chiuso un trade in un buon trend quando TS non avrebbe dovuto chiuderlo - e non ci riesci. Tutto sembra funzionare correttamente.

Questo è esattamente uno degli errori più sgradevoli - la non inizializzazione delle variabili, o l'indirizzamento di quella sbagliata, ma vicina per valore. E più variabili sono disponibili in questa o quella parte del programma - maggiore è la probabilità di questo errore.

Sì, certo, se avete un nucleo grafico globalmente accessibile, e lavorate con gli ordini, è davvero difficile accedere alla variabile sbagliata. Ma in un blocco precedente dove si rileva la necessità di aprire un ordine e di indirizzare gli indicatori per questo scopo e probabilmente secondo le azioni dell'utente - è abbastanza reale confondere le variabili.

Se ci sono più strutture, e dettagli importanti scompaiono periodicamente dalla memoria - si arriva alla conclusione che l'accesso globale - è una fonte di problemi, e si dovrebbe evitare di usarlo a tutti i costi. E che il codice dovrebbe essere scritto in modo tale da ricordare il meno possibile. Idealmente - non immagazzinare assolutamente nulla in memoria - ogni blocco ha un nome, che indica la sua funzione, in ingresso riceve i dati necessari e sufficienti per questa funzione, rimane solo da implementare la funzione, non coinvolgendo qualsiasi altra conoscenza "dall'esterno".

Beh, come puoi chiamare la variabile sbagliata, se hanno tutti nomi diversi? Come può essere chiamata una funzione sbagliata se ha un nome unico e nessun sovraccarico? All'interno della matrice del kernel tutti gli indici delle celle sono nominati con parole umane. Cosa si può confondere qui? Capite, i problemi di cui parlate non esistono affatto.


Tengo solo la struttura del kernel in memoria, che è molto semplice. Conosco anche l'elenco delle proprietà degli oggetti. Tutti gli oggetti hanno le stesse proprietà, solo i valori sono diversi. Ho un totale di 140 proprietà, ma tengo in memoria solo le più importanti, circa 30. Il resto me lo ricordo quando ne ho bisogno. Per fare questo, apro un file con le definizioni e guardo l'elenco completo delle proprietà. Niente di complicato. Le variabili globali a fuoco, come per esempio "OBJECT" o "WINDOW" non hanno bisogno di essere ricordate. Ed è impossibile confonderlo con qualcos'altro.

Le mie variabili hanno nomi significativi in russo. Si possono confondere le cose solo dopo una festa selvaggia).
 

Le mie variabili globali sono le variabili usate nel focus, che sono 'mirate' al kernel e spostate in giro quando il cursore si muove.

Per esempio: la variabile "WINDOW" porta costantemente il numero della finestra in cui si trova il cursore. La variabile "OBJECT" è il numero di quell'oggetto dove si trova il cursore.

Mi rivolgo a una particolare finestra, oggetto e proprietà nel kernel attraverso di loro - G_CORE[WINDOW][OBJECT][_NAME] o G_CORE[WINDOW][OBJECT][_OBJECT_GROUP]. In qualsiasi funzione, se voglio la coordinata X di un oggetto, la ottengo da G_CORE[WINDOW][OBJECT][_X], se voglio l'altezza di un oggetto - da G_CORE[WINDOW][OBJECT][_Y_SIZE] ecc.


In tutto, ho un centinaio di variabili globali dichiarate separatamente, ma ce ne sono migliaia nell'array globale del kernel, perché ogni cella dell'array è una variabile. Tuttavia, è molto facile gestire questo numero di variabili, perché sono ordinate. Ogni finestra nel kernel è un campo array; ogni riga è un oggetto, che consiste di 140 proprietà. Gli elementi, in questo caso, sono insiemi di oggetti. Ogni elemento ha un oggetto master, che contiene le proprietà principali dell'intero elemento. Gli oggetti che appartengono ad ogni elemento sono collegati da indici speciali in modo che qualsiasi oggetto venga messo a fuoco, anche l'elemento a cui appartiene viene messo a fuoco. Così come la tela su cui è disegnata. Grazie all'archetipo esplicito del kernel e all'accesso diretto da qualsiasi funzione, posso gestire migliaia di variabili che sono rappresentate da celle di array del kernel senza dimenticare nulla e senza doverci navigare intorno.

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

Una conversazione completamente inutile: non esiste un criterio per classificare il codice come "buono" o "cattivo". Questo è il motivo per cui non è chiaro su OOP.

Per me, tale criterio è la FATTIBILITÀ del codice, che si manifesta nel fatto che l'autore o una terza parte può leggere il codice e usarlo per la modifica, cercando i bug dopo un periodo di tempo abbastanza lungo.....


Qui sopra Fedoseyev ha sostituito l'interruttore OOP. Questo particolare esempio, forse sfortunato, per me è una prova della cattiveria dell'OOP: un codice chiaro con un interruttore di 100 posizioni è sostituito da una sola linea. Per capire questa linea bisogna andare da qualche parte. Non è ammissibile per me.

Il secondo esempio qui sopradi George Merts

Quando il codice chiaro è stato sostituito da un codice NON chiaro dopo il debug. Secondo il mio criterio il codice di qualità (facile da leggere) è stato sostituito dal codice che non è accettabile per me.


Ecco perché ho una domanda per tutti i sostenitori di OOP: un programma diventa più vivido quando si applica OOP e l'esempio dato da Fedoseyev sullo switch è un fallimento o al contrario, l'esempio di Fedoseyev caratterizza molto accuratamente OOP e OOP porta quasi sempre a una perdita di vividezza?


Bene, tutto è chiaro con CC. Tutto ciò che è al di sopra del livello della sua comprensione è sgradevole. Ma conosce la lettera R ))))))))))))))

 
Alexey Volchanskiy:

Bene, il CC è chiaro. Qualsiasi cosa al di sopra del suo livello di comprensione è poco attraente. Ma conosce la lettera R ))))))))))))))

Aggiungerò il cinese, forse il giapponese...

Perché l'OLP? PERCHE' sarebbe meglio?

La visibilità serve a semplificare il debug, la modifica. La visibilità viene da un'attenta progettazione del programma, dalla strutturazione in FUNZIONI e non in OGGETTI, perché tutto il mondo è basato su azioni su oggetti, ma non viceversa.

Quando la ripartizione in funzioni è derivata dalla sequenza di conversione degli input in output. Per esempio, convertire un input BUY|SELL in un output è possibile solo specificando un ACTION.

È così che funziona il pensiero umano.


PS.

Per quanto riguarda il suo commento su R.

Vuoi fare del sarcasmo?

Rispondo molto raramente, ma posso.

 
Реter Konow:

Come diavolo si può chiamare la variabile sbagliata se hanno tutti nomi diversi? Come può essere chiamata la funzione sbagliata se ha un nome unico e nessun sovraccarico? All'interno della matrice del kernel tutti gli indici delle celle sono nominati con parole umane. Cosa si può confondere qui? Capite, i problemi di cui parlate non esistono affatto.

Beh, ho avuto un paio di casi simili.

Il più delle volte questi errori si verificano quando si copia un pezzo di codice da un altro posto e lo si "aggiusta" secondo il blocco attuale. Se avete l'accesso globale - potreste non riuscire a cambiare una delle variabili. Se in questo caso avete accesso solo a ciò con cui dovete lavorare - allora dopo aver copiato - il compilatore stesso vi dà una lista di tutte le variabili e posizioni che devono essere cambiate.

Tag Konow:

Ho solo la struttura del kernel nella mia memoria, che è molto semplice. Conosco anche l'elenco delle proprietà degli oggetti. Le proprietà di tutti gli oggetti sono le stesse, solo i valori sono diversi. Ho un totale di 140 proprietà, ma tengo in memoria solo le più importanti, circa 30. Il resto me lo ricordo quando ne ho bisogno. Per fare questo, apro un file con le definizioni e guardo l'elenco completo delle proprietà. Niente di complicato.

30 proprietà sono inaccettabili per me. Non che non li ricordi, ma non voglio fare affidamento sulla mia memoria. Molto meglio, quando in ogni blocco - hai sempre esattamente quelle variabili, che in questo blocco devono essere elaborate, e non c'è accesso ad altre.

Ma mi stressa dover ricordare... E dato che non è difficile per te - è comprensibile che non abbia senso fare un inutile armeggiare OOP.

 
George Merts:

Beh, ho avuto un paio di questi casi.

L'errore più comune di questo tipo si verifica quando si copia un pezzo di codice da un altro posto e lo si "aggiusta" per farlo corrispondere al blocco attuale. Se avete un accesso globale, potreste non riuscire a cambiare una delle variabili. Se in questo caso hai accesso solo a ciò con cui devi lavorare - allora dopo la copia - il compilatore stesso ti dà una lista di tutte le variabili e posizioni che devono essere cambiate.

30 proprietà? Beh, questo non è accettabile per me. Non è che non li ricordi, ma non voglio fare affidamento sulla mia memoria. Molto meglio, quando in ogni blocco - avete sempre esattamente quelle variabili, che in questo blocco devono essere elaborate, e non c'è accesso ad altre.

Ma mi stressa dover ricordare... E dato che non è difficile per te - è comprensibile che non ci sia bisogno di fare inutili transazioni OOP.


Beh, francamente parlando, mi ricordo un sacco di cose. Basta guardare le abbreviazioni degli oggetti snapping _X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C ecc... ognuno definisce la posizione di un oggetto rispetto all'altro. Questi si trovano nei parametri A1,B1,C1,A2,B2,C2,A3,B3,C3,A4,B4,C4,A5... Ricordo anche un paio di dozzine di nomi di categorie e sottocategorie di oggetti, un paio di dozzine di proprietà di finestre (più di 100). Ci sono decine di funzioni nel blocco di costruzione, per esempio, e occupano più di 4000 linee di codice. Bisogna navigare e ricordarne molti. Ma ricordare viene da una lunga pratica, non subito, ma gradualmente. La mia testa diventava pesante per la quantità di entità e le dimensioni del codice, ma poi tutto si è impantanato ed è diventato semplice.

 
Реter Konow:

Beh, francamente parlando, mi ricordo un sacco di cose. Le abbreviazioni dei riferimenti degli oggetti _X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C, ecc. Ognuno definisce una certa posizione di un oggetto rispetto a un altro, sono nei parametri A1,B1,C1,A2,B2,C2,A3,B3,C3,A4,B4,C4,A5... Ricordo anche un paio di dozzine di nomi di categorie e sottocategorie di oggetti, un paio di dozzine di proprietà di finestre (più di 100). Ci sono decine di funzioni nel blocco di costruzione, per esempio, e occupano più di 4000 linee di codice. Bisogna navigare e ricordarne molti. Ma ricordare viene da una lunga pratica, non subito, ma gradualmente. La mia testa si gonfiava con il numero di entità e la dimensione del codice, ma poi tutto si è impantanato ed è diventato semplice.


Per distrarmi, dimenticando tutto, andare in vacanza per un mese senza pensare al codice. Poi tornate, vedete tutti questi a1, b1, ecc. e diventate isterici :)

 
Alexey Oreshkin :

distrarsi, dimenticare tutto, andare in vacanza per un mese, senza pensare al codice. Dopo essere venuto, vedi tutti questi a1, b1, ecc. e diventa isterico :)

Ad esempio, ecco come appare l'elemento "checkbox" nel proto-core:

_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,
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//====================================================================================================================================================================================================================================================
 
È solo un elemento su più di 30. E uno dei più piccoli. Ma la cosa sorprendente è che l'ho letto come un libro aperto. Non ho problemi a spiegare cosa rappresenta. Un'altra cosa strana è che tali elementi vengono creati molto velocemente, copiando altri elementi simili e facendo alcune correzioni. Sembra spaventoso, ma in realtà è molto facile.