Il mio approccio. Il nucleo è il motore. - pagina 10

 
Vasiliy Sokolov:

Ci sarà una risposta alla seconda domanda? Lo ripeterò ancora una volta:

Questo è ciò che significa nella mia comprensione "impostare le proprietà dei pulsanti":

#define  NAME        0
#define  TYPE        1
#define  ELEMENT     2

#define  X           3
#define  X_SIZE      4
#define  Y           5
#define  Y_SIZE      6
#define  BG_COLOR    7
#define  TEXT_COLOR  7
#define  TEXT        8
#define  CORNER      9
#define  STATE       10
//-------------------

Deve essere fatto in anticipo.

Se si tratta di inizializzare le proprietà nel kernel, può essere fatto in qualsiasi momento.

 
Реter Konow:

Una volta stabilito il numero di proprietà dell'oggetto, non è più possibile cambiarlo. Se lo cambiate, sarete fuori dalla matrice.

Dovete conoscere in anticipo tutte le proprietà dei vostri oggetti. Date loro degli indici. E tutti devono stare nella fila del Kernel.

Ma il Kernel può essere dinamico, e si può cambiare il numero di elementi e oggetti in esso. Per questo, usate ArrayResize.

E cosa succede se nel processo di sviluppo si scopre improvvisamente che è necessario espandere il numero di proprietà del vostro "oggetto". Dovrete riscrivere tutto il codice?

 
Vitalii Ananev:

Cosa succede se improvvisamente vi rendete conto durante lo sviluppo che avete bisogno di estendere il numero di proprietà del vostro "oggetto". Dovrete riscrivere tutto il codice?

No, non tutto. Il mio numero di proprietà Object continuava ad aumentare durante lo sviluppo. Ha iniziato con 20-30, e ora sono 236. Posso aggiungere nuove proprietà, cambiando solo la dimensione della dimensione Core, e inserirle nel codice. Non c'è bisogno di cambiare nulla.

 
Реter Konow:

E così, cambiamo prima il numero di proprietà del kernel prototipo, erano le stesse del kernel principale. Poi facciamo un ciclo di costruzione di G_CORE.

int P_CORE[3][10] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100001,  base,  button,    100, 100,    200,    50,    C'245,245,245'},
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{100002,  text,  button,  120, 120,     0,      0,       C'245,0,0'},
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{100003,  icon,    button,  140, 140,     16,     16,           0},
//---------------------------------------------- 
};

Dopo questo ciclo il nucleo G_CORE sarà riempito di prototipi di 10 pulsanti. Successivamente, il nostro compito è quello di dare agli elementi nomi unici e legare gli oggetti ai loro elementi, dando ad ogni elemento un indice unico.

Ok, non capisco. Perché il nome del pulsante è un numero? Cosa significa il numero 1000003? E come si imposta il nome del pulsante come testo?

 
236 proprietà per ogni oggetto. Circa 50 elementi diversi. E la gente qui mi dimostra che l'approccio è difficile. Se fosse difficile, ci riuscirei?
 
Реter Konow:

No, non tutto. Nel mio processo di sviluppo, il numero di proprietà Object continuava ad aumentare. Si è iniziato con 20-30, e ora sono 236. Posso aggiungere nuove proprietà, cambiando solo la dimensione della dimensione Core, e inserirle nel codice. Non c'è bisogno di cambiare nulla.

Capisco. Ma lei si sta contraddicendo.

Una volta che avete impostato il numero di proprietà di un oggetto non potete più cambiarlo. Se lo cambiate, andrà oltre i limiti dell'array.

Cosa vuoi dire con questo?

 
Vasiliy Sokolov:

Ok, non capisco. Perché il nome del pulsante è un numero? Cosa significa il numero 1000003? E come si imposta il nome del pulsante come testo?

Quando si hanno molti oggetti grafici, non ha senso dare loro nomi significativi alle stringhe. Quindi, numeri. Inoltre, è più facile nominarli così nel ciclo.

 
Vitalii Ananev:

Capisco. Ma lei si sta contraddicendo.

Come si deve intendere questo?

Significa che la dimensione del kernel dovrebbe corrispondere al numero di proprietà dell'oggetto. Se cambiate il numero di proprietà e non cambiate la dimensione del kernel, siete fuori dalla matrice.

 
Реter Konow:

Non ci saranno nuovi orizzonti con le liste. Il mio concetto non richiede aggiunte. È completo e autosufficiente.

Il suo vantaggio è che non contiene entità e strumenti inutili creati da OOP.

È comprensibile, non sai ancora nulla su di loro :( Tutte le scoperte sono avanti...

Sono stupito di come il ramo si stia interessando sempre di più...

E come ha fatto l'iniziatore di temi filosofici ad abbassarsi a una serie banale? Si potrebbe dire: la semplicità è potere, ma stiamo già volando nello spazio :)

Non capisco :( Realtà awwww....

 
Реter Konow:

Quando ci sono molti oggetti grafici, non ha senso dare loro nomi significativi alle stringhe. Pertanto, i numeri. Inoltre, è più facile nominarli in un ciclo.

Ok, supponiamo che sotto il nome ci sia un numero (selvaggio ovviamente, ma supponiamo). Ma ogni pulsante ha una didascalia, un testo, per esempio "Annulla" o qualcosa del genere. Come si specifica questa proprietà? Come questo:

int P_CORE[3][10] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR  TEXT
//----------------------------------------------
{ 100001,  base,  button,    100, 100,    200,    50,    C'245,245,245', "Отмена"}, 
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{100002,  text,  button,  120, 120,     0,      0,       C'245,0,0'},
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{100003,  icon,    button,  140, 140,     16,     16,           0},