Minha abordagem. O núcleo é o motor. - página 11

 
Vasiliy Sokolov:

OK, digamos que você tenha um número com o nome (selvagem, é claro, mas vamos supor que sim). Mas cada botão tem uma legenda, um texto, por exemplo "Cancelar" ou algo parecido. Como você especifica esta propriedade? Certo:

Ia investigar isso mais a fundo.

Muito simples. Fazemos um conjunto de

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

Fazemos um loop através do núcleo principal e organizamos os índices das células de texto nele contidas.

 
Реter Konow:

Isso significa que o tamanho do grão deve corresponder ao número de propriedades do objeto. Se você alterar o número de propriedades e não alterar o tamanho do núcleo, você estará fora da matriz.

Assim, enquanto você está escrevendo código, você deve controlar que o número de propriedades e o tamanho do grão coincidam em todos os lugares.

...

Você é um verdadeiro monstro :) Você faz seus próprios problemas e os resolve. :)

Se você abandonasse esta "heresia" e abraçasse a "religião" do OOP. :) Então você teria encontrado uma maneira de tornar tudo muito mais simples, mais flexível e expansível.

 
Vitalii Ananev:

Ou seja, ao escrever seu código, você deve verificar constantemente se o número de propriedades e o tamanho do núcleo são os mesmos em todos os lugares.


Qual é o problema de controle? Acrescentamos uma propriedade e aumentamos o tamanho das fileiras de kernel. Isso é tudo.

 

E a propósito, mesmo este código não será compilado para você. Aqui você está criando uma matriz bidimensional 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},

Mesmo que você tenha apenas oito propriedades a definir.

Depois você faz uma nova busca por 10 propriedades:

#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;    
  }

O que isso significa, sequer?

 
Vasiliy Sokolov:

E a propósito, mesmo este código não será compilado para você. Aqui você está criando uma matriz bidimensional 3x10:

Mesmo que você tenha apenas oito propriedades a definir.

Depois você faz uma nova busca por 10 propriedades:

O que isso quer dizer?

Este é apenas um exemplo. Não para compilação.

 
Реter Konow:

Este é apenas um exemplo. Não para compilação.

Ah, sim. Portanto, você está tentando nos explicar seu código com um exemplo de não-trabalho.

 
Vasiliy Sokolov:

Caramba! Então você está tentando nos explicar seu código, usando exemplos que realmente não funcionam.

Eu não estou explicando o código, estou explicando a abordagem.

 
Реter Konow:

Não o núcleo, o motor. O núcleo é simplesmente um conjunto de dados.

Ela se comunica via EventChartCustom();

Sim, desculpe. Eu fico confuso o tempo todo. Núcleo e som do motor equivalentes. A terminologia é infeliz, em minha opinião.
Peter, por favor, desenhe em qualquer editor gráfico, pelo menos algum diagrama de blocos com kernel, motor, corpo do programa e setas entre eles, indicando as formas de interação (onde através de variáveis globais do terminal, onde através de arquivos, onde através de interrupções do usuário, onde através de recursos, onde através do buffer de indicadores, etc.). É que eu sou um visualista (acho que não sou o único), não um audialista, e nesta selva de palavras eu me perco e meus quebra-cabeças não se encaixam.
 
Para aqueles que estão realmente interessados, eu continuarei mais tarde. Por enquanto, é uma pausa.
 
Nikolai Semko:
Sim, desculpe. Eu continuo ficando confuso. O núcleo e o motor soam da mesma forma. A terminologia é infeliz, em minha opinião.
Peter, por favor, desenhe em qualquer editor gráfico pelo menos algum diagrama de blocos com kernel, motor, corpo do programa e setas entre eles com indicação de métodos de interação (onde através de variáveis globais de terminal, onde através de arquivos, onde através de interrupções do usuário, onde através de recursos, onde através de buffer de indicadores, etc.). É que eu sou um visualista (acho que não sou o único) e não um audialista, e nesta selva de palavras eu me perco e meus quebra-cabeças não fazem sentido.

O núcleo é uma matriz. O motor é o código.

Eu vou desenhá-la.