Mi enfoque. El núcleo es el motor. - página 10

 
Vasiliy Sokolov:

¿Habrá respuesta a la segunda pregunta? Lo repetiré de nuevo:

Esto es lo que significa a mi entender "establecer las propiedades de los botones":

#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
//-------------------

Hay que hacerlo con antelación.

Si se trata de inicializar propiedades en el núcleo, puede hacerse cuando sea.

 
Реter Konow:

Una vez que haya establecido el número de propiedades del objeto, ya no podrá modificarlo. Si lo cambias, estarás fuera de la matriz.

Tienes que conocer de antemano todas las propiedades de tus objetos. Dales índices. Y todos ellos deben caber en la fila del Kernel.

Pero, el Núcleo puede ser dinámico, y se puede cambiar el número de Elementos y Objetos en él. Para ello, utilice ArrayResize.

Y qué pasa si en el proceso de desarrollo resulta que de repente necesitas ampliar el número de propiedades de tu "objeto". ¿Tendrá que reescribir todo el código?

 
Vitalii Ananev:

¿Qué pasa si de repente te das cuenta durante el desarrollo que necesitas ampliar el número de propiedades de tu "objeto"? ¿Tendrá que reescribir todo el código?

No. No todo. Mi número de propiedades de los objetos siguió aumentando durante el desarrollo. Empezó con 20-30, y ahora son 236. Puedo añadir nuevas propiedades, cambiando sólo el tamaño de la dimensión Core, y ponerlas en el código. No es necesario cambiar nada.

 
Реter Konow:

Y así, vamos a cambiar primero el número de propiedades del núcleo prototipo, eran las mismas que en el núcleo principal. A continuación vamos a realizar un ciclo de construcción de 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},
//---------------------------------------------- 
};

Después de este ciclo, el núcleo G_CORE se llenará de prototipos de 10 botones. A continuación, nuestra tarea es dar a los elementos nombres únicos y vincular los objetos a sus elementos, dando a cada elemento un índice único.

Vale, no lo entiendo. ¿Por qué el nombre del botón es un número? ¿Qué significa el número 1000003? ¿Y cómo se establece el nombre del botón como texto?

 
236 propiedades para cada objeto. Unos 50 elementos diferentes. Y la gente aquí me demuestra que el enfoque es difícil. Si fuera difícil, ¿lo conseguiría?
 
Реter Konow:

No. No todo. En mi proceso de desarrollo, el número de propiedades de los objetos fue aumentando. Empezó con 20-30, y ahora son 236. Puedo añadir nuevas propiedades, cambiando sólo el tamaño de la dimensión Core, y encajarlas en el código. No es necesario cambiar nada.

Ya veo. Pero te estás contradiciendo.

Una vez que haya establecido el número de las propiedades de un objeto, ya no podrá cambiarlo. Si lo cambias, sobrepasará los límites de la matriz.

¿Qué quieres decir con eso?

 
Vasiliy Sokolov:

Vale, no lo entiendo. ¿Por qué tiene el nombre del botón como un número? ¿Qué significa el número 1000003? ¿Y cómo se establece el nombre del botón como texto?

Cuando se tienen muchos objetos gráficos, no tiene sentido darles nombres con significado de cadena. Así que, números. Además, es más fácil nombrarlos así en el bucle.

 
Vitalii Ananev:

Ya veo. Pero te estás contradiciendo.

¿Cómo se entiende esto?

Significa que el tamaño del núcleo debe corresponder al número de propiedades del objeto. Si cambias el número de propiedades y no cambias el tamaño del núcleo, te quedas fuera de la matriz.

 
Реter Konow:

No habrá nuevos horizontes con las listas. Mi concepto no requiere ninguna adición. Es completa y autosuficiente.

Su ventaja es que no contiene entidades y herramientas innecesarias creadas por OOP.

Es comprensible, aún no sabes nada de ellos :( Todos los descubrimientos están por delante...

Me sorprende que la rama esté cada vez más interesada...

¿Y cómo es que el tópico de formación filosófica se rebaja a un conjunto trivial? Podrían decir: la simplicidad es poder, pero ya estamos volando al espacio :)

No lo entiendo :( Realidad awwww....

 
Реter Konow:

Cuando hay muchos objetos gráficos, no tiene sentido darles nombres con sentido de cadena. Por lo tanto, los números. Además, es más fácil nombrarlos en un bucle.

Bien, vamos a suponer que bajo el nombre tienes un número (descabellado, por supuesto, pero vamos a suponer). Pero cada botón tiene una leyenda, un texto, por ejemplo "Cancelar" o algo así. ¿Cómo se especifica esta propiedad? Así:

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},
Razón de la queja: