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

 
彼得,你把巴解组织当作牛眼前的一块红布。没有其他主题像你这样讨论OOP。尽管你没有用这种非常OOP的方式写过一个程序。你不觉得这一切很奇怪吗?
 
Vasiliy Sokolov:
彼得,你的OOP就像牛眼前的一块红布。没有其他主题像你这样讨论OOP。而这一切,尽管你还没有在这个非常OOP中写过一个程序。你不觉得这一切很奇怪吗?

我只是在回应关于在我的方法中使用OOP 的建议。这些方法并不兼容。

因此,我将继续解释我的方法,而不解释为什么我不在其中使用OOP语法。


如果我不使用它,那么就没有必要了。

 
Dmitry Fedoseev:

这两个论点都是错误的。

不要把话题发起人拖到这里已经6页了,但不清楚他想展示什么,很明显都是关于内核 的))))。

他将向我们展示一个例子,然后我们将说服他,OOP可以节省软件开发的时间;)

 
六页的内容,什么都没有。对于交易者来说,最主要的是赚取利润。:)代码是否有OOP是次要的。
 
Реter Konow:

如果我不使用它,那么就没有必要使用它。

如果你不了解某个东西,就不可能有使用它的必要。因此,无论你在你的巨型库里有什么事情,对OOP来说都 "没有必要"。

 
Vasiliy Sokolov:

如果你不了解某个东西,就不可能有使用它的必要。因此,无论你在你的巨型库里有什么,那里 "不需要 "OOP。

 

因此,让我们从一个简单的问题开始。让我们在原核内创建一个原型元素。

int P_CORE[3][5] = {
//Основание кнопки.-----------------------------
//
//  X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{  100, 100,    200,    50,    C'245,245,245'},
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//  X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{  120, 120,     0,      0,       C'245,0,0'},
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//  X    Y     X_SIZE  Y_SIZE       COLOR 
{  140, 140,     16,     16,           0},
//---------------------------------------------- 
};


P_CORE - массив. Я называю его прото-ядром, потому что он содержит прототип элемента, который далее будет изменен.

Элемент кнопка состоит из 3-ех объектов. Каждому из них мы предоставили 5 свойств.
 

于是,该元素在原核中以扩展的、表格的形式表示。

列表式表示有其优点。主要是在循环中。


现在让我们写一个函数,它将创建一个项目。

但首先,让我们通过定义来定义项目的属性,这样就很容易引用它们了。

 
#define  BASE        0
#define  TEXT        1
#define  ICON        2
//-------------------
#define  X           0
#define  X_SIZE      1
#define  Y           2
#define  Y_SIZE      3
#define  BG_COLOR    4
#define  TEXT_COLOR  4
//-------------------
//Вот как будут выглядеть обращения к свойствам элемента:

P_CORE[BASE][X]
P_CORE[BASE][Y]
P_CORE[BASE][X_SIZE]
P_CORE[BASE][Y_SIZE]
P_CORE[BASE][COLOR]

P_CORE[TEXT][X]
P_CORE[TEXT][Y]
P_CORE[TEXT][X_SIZE]
P_CORE[TEXT][Y_SIZE]
P_CORE[TEXT][COLOR]

P_CORE[ICON][X]
P_CORE[ICON][Y]
P_CORE[ICON][X_SIZE]
P_CORE[ICON][Y_SIZE]
P_CORE[ICON][COLOR]
 

我们写一个函数,它将创建一个按钮。

void Create_element(string name, string Text)
{
 ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
 ObjectSetInteger(0,name,OBJPROP_XDISTANCE,P_CORE[BASE][X]);
 ObjectSetInteger(0,name,OBJPROP_YDISTANCE,P_CORE[BASE][Y]);
 ObjectSetInteger(0,name,OBJPROP_XSIZE,P_CORE[BASE][X_SIZE]);
 ObjectSetInteger(0,name,OBJPROP_YSIZE,P_CORE[BASE][Y_SIZE]);
 ObjectSetString(0,name,OBJPROP_TEXT,Text);
 //----------------------------------------------
 ObjectSetInteger(0,name,OBJPROP_BGCOLOR,P_CORE[BASE][BG_COLOR]));
 ObjectSetInteger(0,name,OBJPROP_COLOR,P_CORE[TEXT][TEXT_COLOR])); 
 //----------------------------------------------
 ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
 ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT_UPPER); 
}


当然,有人会说,内核是不必要的。这样的电话就足够了。

Create_element(name,x,y,x_size,y_size,text,anchor,corner...)

而一切都将是一样的。是的,但只是在开始时。这种呼吁的问题是,它不能得到适当的发展。


我们需要每个元素的属性在全局内存中排序,并以最简单的方式访问。

原因: