在Canvas上做一个众包项目 - 页 39

 
Алексей Барбашин:

...

彼得,你在创建一个具有你风格的GUI库方面做得很好。但如果你打算出版,仍然值得按照不同的技术重新设计它。我已经准备好在这方面帮助你,一步一步地以新的方式转移你的图书馆的所有权力。

阿列克谢,就说我愿意试一试吧。您建议如何做呢?这项工作令人难以置信。
 
Реter Konow:
阿列克谢,就说我想试试吧。你打算怎么做?这是一个不可能的工作。

彼得,我可能连你所做的工作的一小部分都无法想象,我更确信我只是低估了你所创造的对象 的全部规模。但是!

像往常一样,有一个BUT!

任何项目,甚至不一定在编程方面。

首先,我们从已经创建的对象中抽象出来。也就是说,我们不会把它们表现为矩阵、结构或类。我们将简单地接受一个OBJECT的概念(又称控制元素,又称表单,又称整个界面,等等)。你试着在结构上布置物体的互动。当我们一起找出所建造的东西时,我们将试图在此基础上揭示出规律性。原则上,你不用去识别它们,因为你早就识别了它们,并为它们做了统一的处理,你只需解释操作原理和目的。然后我们将简单地在你的项目中用一个对象代替另一个对象。当然,这将比从头开始写要难得多。但我们的目标略有不同,所以大体上不急。但关于将矩阵算法转化为对象算法的出版物可能不仅对初学者有意义。我相信,在这项工作的过程中,其他参与者会加入我们,并分享他们的想法,或促使这个或那个算法更方便的实现。

无论如何,想法本身必须首先由算法的流程图来表示。

我提出了我的建议。但你可以不这样做,这完全取决于你的愿望和对问题的看法(联合工作)。

 
Алексей Барбашин:

彼得,我可能连你所做的工作的一小部分都无法想象,我更确信我只是低估了你所创造的对象 的全部规模。但是!

像往常一样,有一个BUT!

任何项目,甚至不一定在编程方面。

首先,我们从已经创建的对象中抽象出来。也就是说,我们不会把它们表现为矩阵、结构或类。我们将简单地接受一个OBJECT的概念(又称控制元素,又称表单,又称整个界面,等等)。你试着在结构上布置物体的互动。当我们一起找出所建造的东西时,我们将试图在此基础上揭示出规律性。原则上,你不用去识别它们,因为你早就识别了它们,并为它们做了统一的处理,你只需解释操作原理和目的。然后我们将简单地在你的项目中用一个对象代替另一个对象。 当然,这将比从头开始写要难得多。但我们的目标略有不同,所以大体上不急。但关于将矩阵算法转化为对象算法的出版物可能不仅对初学者有意义。我相信,在这项工作的过程中,其他参与者会加入我们,并分享他们的想法,或促使这个或那个算法更方便的实现。

无论如何,想法本身必须首先由算法的流程图来表示。

我已经提出了我的建议。但你可以不这样做,这完全取决于你的愿望和对问题的看法(一起工作)。

好的。我将尽我所能。我将解释解决方案和架构。但我不知道我最终是否会成功。

现在,这些对象被安排在内核中。他们需要从内核中取出来,放到类中。

1.我可能会创建三个基本类:"Rectangle_label",它将容纳所有矩形标签的基本属性,"Icon "和 "Text"。这些对象是几乎所有控件的一部分。

2.接下来,创建一组子类。它们将按以下标准划分:a)控制一个参数的元素。 b) 由参数控制的要素。

3.这些类别将描述每个元素的具体属性。

这些只是最初的想法。他们可能是错的。

有了这个方案,继承立刻变成了多重继承--元素类(继承人)必须同时包括三个基类的属性。

 
Реter Konow:

好的。我将尽力而为。我将解释解决方案和架构。但我不知道我最终是否会成功。

现在,这些对象被组织在内核中。他们需要从内核中取出来,放到类中。

1.我可能会创建三个基本类:"Rectangle_label",它将容纳所有矩形标签的基本属性,"Icon "和 "Text"。这些对象是几乎所有控件的一部分。

2.接下来,创建一组子类。它们将按以下标准划分:a)控制一个参数的元素。 b) 由参数控制的要素。

3.这些类别将描述每个元素的具体属性。

这些只是最初的想法。他们可能是错的。

有了这个方案,继承一下子变成了复数--元素类(后代)必须同时包括三个基本类的属性。

因此,这里有一些推理。

"我将创建三个基类:"Rectangle_label",它将包含矩形标签的所有基本属性,"Icon "和 "Text"。- 经典的做法是,第一个对象简单地称为Rectangle或Rect,第二个泛指Image,嗯,第三个可以用单独的属性描述,或者也可以做一个单独的对象。为了表明创建的数据类型 在C++和Mql中是一个类,通常会在类型名称前注明C,即CRectangle、CImage、CText。但只是包含异质数据的简单类型,作为结构来创建更方便。

首先要考虑的是LARGE控件的所有基本属性。进一步说,你可以添加任何属性,这不会是一个问题。

"a)控制一个参数的元素。 b)被一个参数控制的元素。"- 这里需要破译。我不明白这些描述是什么意思。

"最后会不会有成功"--还是要确定会有成功。否则,最好不要开始。
 
Алексей Барбашин:

好吧,这里有一些推理。

1."我将创建三个基本类:"Rectangle_label",它将包含矩形标签的所有基本属性,"Icon "和 "Text"。- 经典的是,第一个对象简单地称为Rectangle或Rect,第二个泛指Image,好吧,第三个既可以用单独的属性描述,也可以做一个白色的对象。在C++和Mql中,为了表示一个创建的数据类型 是一个类,习惯上在类型名称前表示C,即CRectangle, CImage, CText。

2."a)控制该参数的元素。 b)受该参数控制的元素。"- 这里需要破译。我不明白这些描述是什么意思。

"最后会不会有成功"--还是要确定会有成功。否则,最好不要开始。

1.最基本的类是GHObjest(基本图形对象)。应该有x、y、x_size、y_sixe属性和不同类型的坐标绑定。这些是所有物体的共同属性。

2. 它的后代是CRec、CImage、CText。它们具有特定的和固有的唯一属性。

3.然后,是窗口平台类。其中有几个:菜单窗口、选项窗口、对话窗口、动态窗口。那里有一组特定的属性。

3.然后,还有元素类。可能有多达50个这样的人。它们被分为几类:1)按参数处理方法,2)按装饰方法。

这是一个很好的起点。我们需要做的是一种标记语言,而不是一个库。否则有什么意义呢?


ZS 大多数的控制都是按照给定的参数工作的。它们的本质目的是控制一些用户参数。但是,每个控件都以不同的方式来做。

ZSY.我忘了补充--你需要一个带属性的参数基类。例如,CParam。

 
Реter Konow:

1.最基本的类是GOBijest(基本图形对象)。应该有x、y、x_size、y_sixe属性和不同类型的坐标绑定。这些是所有物体的共同属性。

2. 它的后代是CRec、CImage、CText。它们具有特定的和固有的唯一属性。

3.然后,是窗口平台类。其中有几个:菜单窗口、选项窗口、对话窗口、动态窗口。那里有一组特定的属性。

3.然后,还有元素类。可能有多达50个这样的人。它们被分为几类:1)按参数处理方法,2)按装饰方法。

这是一个很好的起点。我们需要做的是一种标记语言,而不是一个库。否则有什么意义呢?


ZS 大多数的控制都是按照给定的参数工作的。它们的本质目的是控制一些用户参数。但是,每个元素的做法都不同。

我的大脑有点爆炸了......))这一切都需要画出来,否则你无法消化它。)

 
Алексей Барбашин:

我的大脑有点爆炸了......))这一切都需要画出来,否则你无法消化它。)

))没有什么...

CParam参数基类有几个子类。问题是,受控项目参数有其一般属性,也有其特殊属性。例如:一个按钮有一个受控参数类型bool,而一个下拉列表有一个 "菜单 "类型。也就是说,一个按钮可以切换1/0,而一个列表可以提供有限的选择。例如,滑块的参数类型是 "范围"--也就是范围。还有其他几种类型,都有独特的属性。

因此,从基干参数类中降生的类也应该是这样。像 "CBool"、"CRange"、"CMenu"。

 
Реter Konow:

))没有什么...

CParam参数基类有几个子类。问题是,受控项目参数有常见的属性,也有特殊的属性。例如:一个按钮的受控参数类型为bool,而下拉列表则为 "菜单 "类型。也就是说,一个按钮可以切换1/0,而一个列表可以提供有限的选择。例如,滑块的参数类型是 "范围"--也就是范围。还有其他几种类型,都有独特的属性。

因此,作为基参数类的后代的类也应该是这样。像 "CBool"、"CRange"、"CMenu"。

等等。现在让我们试着抽象地看一下。

彼得,从你的角度来看,按钮、文本标签、输入框、图片框等控件有什么共同点?

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
Алексей Барбашин:

等等。现在让我们试着抽象地看一下。

彼得,从你的角度来看,按钮、文本标签、输入框、图片框等控件有什么共同点?

1.坐标,尺寸。

2.坐标依赖性,尺寸依赖性。

3. 根据控件功能中的属性总数,还有一堆东西。我的核心区有270个房产。其中大多数是常见的。但是,我有一个开发的功能,支持很多的功能。因此,这样一个数字的属性。我们必须从最简单的属性开始。

 
Реter Konow:

1.坐标。

2.协调依存关系。

3. 一堆其他东西,取决于控制功能中的属性总数。我的核心区有270个房产。其中大多数是常见的。 但是,我有一个先进的功能,支持很多的功能。因此,这样一个数字的属性。我们必须从最简单的属性开始。

是的,当然是用最简单的属性。同样的文本标签可以由哪些原始对象组成?或者说,一个简单的按钮可以由哪些原始的物体组成?