我的方法。核心是引擎。 - 页 10

 
Vasiliy Sokolov:

第二个问题会有答案吗?我将再次重复这一点。

这就是我理解的 "设置按钮属性 "的意思。

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

这必须提前进行。

如果是关于在内核中初始化属性,可以随时进行。

 
Реter Konow:

一旦你建立了对象属性的数量,你就不能再改变它。如果你改变了它,你就会被淘汰出阵列。

你必须事先了解你的对象的所有属性。给他们提供指数。而且所有这些都必须符合内核的行。

但是,内核可以是动态的,你可以改变其中的项目和对象的数量。为此,使用ArrayResize

如果在开发过程中,突然发现你需要扩大你的 "对象 "的属性数量,会发生什么?你必须重写整个代码吗?

 
Vitalii Ananev:

如果你在开发过程中突然意识到你需要扩展你的 "对象 "的属性数量,会发生什么?你必须重写所有的代码吗?

不,不是所有的。在发展过程中,我的Object属性的 数量不断增加。开始是20-30,现在是236。我可以添加新的属性,只改变核心维度的大小,并把它们放到代码中。没有必要改变任何东西。

 
Реter Konow:

因此,首先让我们改变原型内核属性的数量,它们与主内核中的相同。接下来让我们做一个构建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},
//---------------------------------------------- 
};

在这个周期之后,G_CORE核心将被10个按钮的原型所填充。接下来,我们的任务是给元素起唯一的名字,并将对象 与它们的元素绑定,给每个元素一个唯一的索引。

好吧,我不明白。为什么你把按钮的名字写成数字?数字1000003是什么意思?那么如何将按钮名称设置为文本?

 
每个对象的236个属性。大约50种不同的元素。而这里的人向我证明,这种做法是很难的。如果这很难,我是否会拉下脸来?
 
Реter Konow:

不,不是所有的。在我的开发过程中,Object属性 的数量不断增加。开始是20-30,现在是236。我可以添加新的属性,只改变核心维度的大小,并将其纳入代码。没有必要改变任何东西。

我明白了。但你是自相矛盾的。

一旦你设置了一个对象的属性数量,你就不能再改变它。如果你改变它,它就会超出数组的限制。

你这话是什么意思?

 
Vasiliy Sokolov:

好吧,我不明白。为什么你把按钮的名称作为一个数字?数字1000003是什么意思?那么如何将按钮的名称设置为文本?

当你有大量的图形对象时,给它们起一些有意义的字符串名称是没有意义的。所以,数字。此外,在循环中这样命名比较容易。

 
Vitalii Ananev:

我明白了。但你是自相矛盾的。

这一点该如何理解呢?

这意味着内核的大小应该与对象属性的 数量相对应。如果你改变了属性的数量而不改变内核的大小,你就出了阵列。

 
Реter Konow:

有了名单,就不会有新的视野。我的概念不需要添加任何东西。它是完整和自足的。

它的优点是不包含由OOP创建的不必要的实体和工具。

这是可以理解的,你对他们还一无所知 :( 所有的发现都在前面......。

我很惊讶,支部越来越有兴趣......

而这位受过哲学训练的话题发起人又是如何委曲求全于一个微不足道的阵列呢?他们可能会说:简单就是力量,但我们已经在飞向太空了 :)

我不明白 :( 现实 awwww....

 
Реter Konow:

当有许多图形对象时,给它们取一个有意义的字符串名称是没有意义的。因此,数字。此外,在一个循环中为它们命名更容易。

好吧,让我们假设在你的名字下有一个数字(当然是野生的,但让我们假设一下)。但每个按钮都有一个标题,一个文本,例如 "取消 "或类似的东西。你如何指定这个属性?像这样。

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},
原因: