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

 
Vasiliy Sokolov:

Haverá uma resposta para a segunda pergunta? Vou repeti-lo novamente:

Isto é o que significa no meu entendimento "definir as propriedades dos botões":

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

Tem que ser feito com antecedência.

Se se trata de rubricar propriedades no núcleo, isso pode ser feito sempre que necessário.

 
Реter Konow:

Uma vez estabelecido o número de propriedades do objeto, você não pode mais modificá-lo. Se você mudá-lo, estará fora da série.

Você tem que conhecer todas as propriedades de seus objetos com antecedência. Dê-lhes índices. E todos eles devem caber na fila do Kernel.

Mas, o Kernel pode ser dinâmico e você pode mudar o número de Itens e Objetos nele contidos. Para este uso, ArrayResize.

E o que acontece se, no processo de desenvolvimento, de repente se descobrir que você precisa expandir o número de propriedades de seu "objeto". Você terá que reescrever o código inteiro?

 
Vitalii Ananev:

O que acontece se você de repente perceber durante o desenvolvimento que precisa ampliar o número de propriedades de seu "objeto". Você terá que reescrever todo o código?

Não. Nem tudo. Meu número de propriedades de objetos continuou aumentando durante o desenvolvimento. Começou com 20-30, e agora é 236. Posso adicionar novas propriedades, mudando apenas o tamanho da dimensão do núcleo, e colocá-las no código. Não há necessidade de mudar nada.

 
Реter Konow:

E assim, vamos primeiro mudar o número de propriedades do protótipo de kernel, elas eram as mesmas que no kernel principal. Em seguida, vamos fazer um ciclo de construção 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},
//---------------------------------------------- 
};

Após este ciclo, o núcleo G_CORE será preenchido com protótipos de 10 botões. Em seguida, nossa tarefa é dar aos Elementos nomes únicos e ligar os Objetos a seus Elementos, dando a cada Elemento um índice único.

Certo, não entendo. Por que você tem o nome do botão como um número? O que significa o número 1000003? E como você define o nome do botão como texto?

 
236 propriedades para cada objeto. Cerca de 50 elementos diferentes. E as pessoas aqui me provam que a abordagem é difícil. Se fosse difícil, será que eu conseguiria?
 
Реter Konow:

Não. Nem tudo. Em meu processo de desenvolvimento, o número de propriedades de objetos continuou aumentando. Começou com 20-30, e agora é 236. Posso adicionar novas propriedades, mudando apenas o tamanho da dimensão do núcleo, e encaixá-las no código. Não há necessidade de mudar nada.

Estou vendo. Mas você está se contradizendo.

Uma vez definido o número de propriedades de um objeto, você não pode mais modificá-lo. Se você mudá-lo, ele irá além dos limites da matriz.

O que você quer dizer com isso?

 
Vasiliy Sokolov:

OK, eu não entendo. Por que você tem o nome do botão como um número? O que significa o número 1000003? E como você define o nome do botão como texto?

Quando se tem muitos objetos gráficos, não faz sentido dar-lhes nomes com significado de cadeia. Portanto, números. Além disso, é mais fácil nomeá-los desta forma no loop.

 
Vitalii Ananev:

Estou vendo. Mas você está se contradizendo.

Como isto deve ser entendido?

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.

 
Реter Konow:

Não haverá novos horizontes com listas. Meu conceito não requer acréscimos. É completo e auto-suficiente.

Sua vantagem é que não contém entidades e ferramentas desnecessárias criadas pela OOP.

É compreensível, você ainda não sabe nada sobre eles :( Todas as descobertas estão à frente...

Estou espantado como o ramo está ficando cada vez mais interessado.

E como é que o iniciante filosoficamente treinado se inclinou para uma série trivial de tópicos? Eles poderiam dizer: simplicidade é poder, mas já estamos voando para o espaço :)

Eu não entendo :( Realidade awwwww....

 
Реter Konow:

Quando existem muitos objetos gráficos, não faz sentido dar-lhes nomes com significado de cadeia. Portanto, números. Além disso, é mais fácil nomeá-los em um loop.

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

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ão: