Mon approche. Le noyau est le moteur. - page 10

 
Vasiliy Sokolov:

Y aura-t-il une réponse à la deuxième question ? Je vais le répéter une fois de plus :

C'est ce que signifie, selon moi, "définir les propriétés des boutons" :

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

Il faut le faire à l'avance.

S'il s'agit d'initialiser des propriétés dans le noyau, cela peut être fait n'importe quand.

 
Реter Konow:

Une fois que vous avez établi le nombre de propriétés de l'objet, vous ne pouvez plus le modifier. Si vous le changez, vous serez hors du tableau.

Vous devez connaître au préalable toutes les propriétés de vos objets. Donnez-leur des indices. Et tous doivent tenir dans la rangée du Kernel.

Mais le noyau peut être dynamique, et vous pouvez modifier le nombre d'éléments et d'objets qu'il contient. Pour cela, utilisez ArrayResize.

Et que se passe-t-il si, au cours du développement, il s'avère soudain que vous devez augmenter le nombre de propriétés de votre "objet". Devrez-vous réécrire l'ensemble du code ?

 
Vitalii Ananev:

Que se passe-t-il si vous vous rendez soudain compte, au cours du développement, que vous devez étendre le nombre de propriétés de votre "objet". Devrez-vous réécrire tout le code ?

Non. Pas tout. Mon nombre de propriétés d'objets n'a cessé d'augmenter au cours du développement. Ça a commencé avec 20-30, et maintenant c'est 236. Je peux ajouter de nouvelles propriétés, en ne modifiant que la taille de la dimension centrale, et les intégrer dans le code. Il n'y a pas besoin de changer quoi que ce soit.

 
Реter Konow:

Et donc, changeons d'abord le nombre de propriétés du noyau prototype, elles étaient les mêmes que dans le noyau principal. Ensuite, nous allons faire un cycle de construction 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},
//---------------------------------------------- 
};

Après ce cycle, le noyau G_CORE sera rempli de prototypes de 10 boutons. Ensuite, notre tâche consiste à donner des noms uniques aux éléments et à lier les objets à leurs éléments, en donnant à chaque élément un index unique.

Ok, je ne comprends pas. Pourquoi le nom du bouton est-il un numéro ? Que signifie le nombre 1000003 ? Et comment définir le nom du bouton en tant que texte ?

 
236 propriétés pour chaque objet. Environ 50 éléments différents. Et les gens ici me prouvent que l'approche est difficile. Si c'était difficile, est-ce que j'y arriverais ?
 
Реter Konow:

Non. Pas tout. Dans mon processus de développement, le nombre de propriétés d'objets ne cessait d'augmenter. Ça a commencé avec 20-30, et maintenant c'est 236. Je peux ajouter de nouvelles propriétés, en ne modifiant que la taille de la dimension Core, et les intégrer dans le code. Il n'y a pas besoin de changer quoi que ce soit.

Je vois. Mais vous vous contredisez.

Une fois que vous avez défini le nombre de propriétés d'un objet, vous ne pouvez plus le modifier. Si vous le modifiez, il dépassera les limites du tableau.

Qu'est-ce que vous entendez par là ?

 
Vasiliy Sokolov:

OK, je ne comprends pas. Pourquoi le nom du bouton est-il un numéro ? Que signifie le nombre 1000003 ? Et comment définir le nom du bouton en tant que texte ?

Lorsque vous disposez d'un grand nombre d'objets graphiques, il n'est pas judicieux de leur donner des noms significatifs pour les chaînes de caractères. Donc, les chiffres. De plus, il est plus facile de les nommer de cette façon dans la boucle.

 
Vitalii Ananev:

Je vois. Mais vous vous contredisez.

Comment faut-il comprendre cela ?

Cela signifie que la taille du noyau doit correspondre au nombre de propriétés de l'objet. Si vous modifiez le nombre de propriétés et ne changez pas la taille du noyau, vous êtes hors du tableau.

 
Реter Konow:

Il n'y aura pas de nouveaux horizons avec des listes. Mon concept ne nécessite aucun ajout. Elle est complète et autosuffisante.

Son avantage est qu'il ne contient pas d'entités et d'outils inutiles créés par la POO.

C'est compréhensible, vous ne connaissez encore rien d'eux :( Toutes les découvertes sont à venir....

Je suis étonné de voir que la branche s'intéresse de plus en plus...

Et comment l'initiateur du sujet, formé à la philosophie, a-t-il pu s'abaisser à un tableau banal ? On pourrait dire que la simplicité est le pouvoir, mais nous volons déjà dans l'espace :)

Je ne comprends pas :( Réalité awwww....

 
Реter Konow:

Lorsqu'il y a beaucoup d'objets graphiques, il est inutile de leur donner des noms significatifs de chaînes de caractères. Donc, des chiffres. De plus, il est plus facile de les nommer dans une boucle.

Bon, supposons que sous le nom vous avez un numéro (sauvage bien sûr, mais supposons). Mais chaque bouton a une légende, un texte, par exemple "Annuler" ou quelque chose comme ça. Comment spécifier cette propriété ? Comme ça :

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},
Raison: