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

 
Vasiliy Sokolov:

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

J'allais examiner la question plus en détail.

Très simple. Nous faisons un tableau de

string Button_names[] = {"Cancel", "Ok", "Hello World !"...} ;

Nous bouclons à travers le noyau principal et arrangeons les index des cellules de texte dans celui-ci.

 
Реter Konow:

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 que vous ne modifiez pas la taille du noyau, vous sortirez du tableau.

Ainsi, lorsque vous écrivez du code, vous devez contrôler que le nombre de propriétés et la taille du noyau coïncident partout.

...

Vous êtes un vrai monstre :) Vous créez vos propres problèmes et vous les résolvez. :)

Si vous deviez abandonner cette "hérésie" et embrasser la "religion" OOP. :) Vous auriez alors trouvé un moyen de rendre tout cela beaucoup plus simple, plus souple et plus extensible.

 
Vitalii Ananev:

Autrement dit, lorsque vous écrivez votre code, vous devez constamment vérifier que le nombre de propriétés et la taille du noyau sont les mêmes partout.


Quel est le problème du contrôle ? Nous ajoutons une propriété et augmentons la taille des rangées du noyau. C'est tout.

 

Et d'ailleurs, même ce code ne compilera pas pour vous. Ici, vous créez un tableau bidimensionnel 3x10 :

int P_CORE[3][10] = {
//Основание кнопки.-----------------------------
//
//1)NAME   2)TYPE  3)ELEMENT    4)X    5)Y     6)X_SIZE  7)Y_SIZE       8)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},

Même si vous n'avez que huit propriétés à définir.

Puis vous refaites une recherche pour 10 propriétés :

#define  All_objects     30
#define  All_properties  10
//Далее, строим G_CORE:
//--------------------------------------
int q = 0;
//--------------
for(int a1 = 0; a1 < All_objects; a1++)
  {
   for(int a2 = 0; a2 < All_properties; a2++)
    {
     G_CORE[a1][a2] = P_CORE[q][a2];
    }
     q++;
     if(q == 3)q = 0;    
  }

Qu'est-ce que ça veut dire ?

 
Vasiliy Sokolov:

Et d'ailleurs, même ce code ne compilera pas pour vous. Ici, vous créez un tableau bidimensionnel 3x10 :

Même si vous n'avez que huit propriétés à définir.

Ensuite, vous effectuez une nouvelle recherche pour 10 propriétés :

Qu'est-ce que ça veut dire ?

Ce n'est qu'un exemple. Pas pour la compilation.

 
Реter Konow:

Ce n'est qu'un exemple. Pas pour la compilation.

Oh, oui. Vous essayez donc de nous expliquer votre code avec un exemple qui ne fonctionne pas.

 
Vasiliy Sokolov:

Oh, mon garçon. Vous essayez donc de nous expliquer votre code en utilisant des exemples qui ne fonctionnent pas vraiment.

Je n'explique pas le code, j'explique l'approche.

 
Реter Konow:

Pas le noyau, le moteur. Le noyau est simplement un tableau de données.

Il communique via EventChartCustom() ;

Ouais, désolé. Je m'embrouille tout le temps. Équivalent du son du noyau et du moteur. La terminologie est malheureuse à mon avis.
Peter, s'il te plaît, dessine dans n'importe quel éditeur graphique, au moins un diagramme de bloc avec le noyau, le moteur, le corps du programme et des flèches entre eux, indiquant les voies d'interaction (où par les variables globales du terminal, où par les fichiers, où par les interruptions de l'utilisateur, où par les ressources, où par le tampon indicateur, etc.) C'est juste que je suis un visualiste (je pense que je ne suis pas le seul), pas un audialiste, et dans cette jungle de mots, je me perds et mes puzzles ne s'emboîtent pas.
 
Pour ceux qui sont réellement intéressés, je continuerai plus tard. Pour l'instant, c'est une pause.
 
Nikolai Semko:
Ouais, désolé. Je n'arrête pas de m'embrouiller. Le noyau et le moteur ont le même son. La terminologie est malheureuse à mon avis.
Peter, veuillez dessiner dans n'importe quel éditeur graphique au moins un schéma fonctionnel avec le noyau, le moteur, le corps du programme et les flèches entre eux avec l'indication des méthodes d'interaction (où par les variables globales du terminal, où par les fichiers, où par les interruptions de l'utilisateur, où par les ressources, où par le tampon indicateur, etc.) C'est juste que je suis un visualiste (je pense que je ne suis pas le seul) plutôt qu'un audialiste, et dans cette jungle de mots, je me perds et mes puzzles ne s'additionnent pas.

Le noyau est un tableau. Le moteur est le code.

Je vais le dessiner.