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

 

顺便说一句,由于人们正在处理一个以前早就该处理的问题。

这是一个随机的截图,从yandex,GUI客户-服务器界面,以及通过网络拍摄的。没有必要重新发明车轮......

(一秒钟的广告)Pi真的很酷。诚实的钨住在那里 :-)

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

是的,这就是主要的问题!同一市场禁止使用dlls,所以我们必须重新发明轮子。好吧,如果有人认为GUI是不需要的,但在任何情况下,任何复杂的长计算在一个线程中都不会工作,所有的东西都会挂起!这是不可能的。 所以它必须在一个小房间里进行......这在市场上是被禁止的......。

以此类推。由于这个原因,我必须用mql方法来绘制和解决一切问题。

事实上,将GUI和逻辑分离成线程,当然已经是可能的。在这里,人们已经讨论了平行性问题,https://www.mql5.com/ru/forum/288985/page5#comment_14722396。

因此,表格本身可以留在主线程中,就像在winnda中那样,而任何额外的计算都可以移到 "后台 "执行。这是在Windows、Linux和Android上的工作方式。

是的,我看过那篇文章,这又是一种拐杖,有很多代码,我甚至不想去看。
当一切都在Dll中更快、更容易做到的时候。
顺便说一下,我放弃了mql Socket和WebRequest,因为当mql服务器不可用时,由于连接中断。
套接字或webrequest函数被屏蔽了,所以如果你决定在mql套接字和webrequests上构建应用程序,请记住这一点。

 
Maxim Kuznetsov:

顺便说一句,只要人们在做以前已经做过的事情。

这是一个随机的截图,从yandex,GUI客户-服务器界面,以及通过网络拍摄的。没有必要重新发明车轮......

(一秒钟的广告)Pi真的很酷。诚实的钨住在那里 :-)

顺便说一下,截图中的Scratch大致上就是Konov想做的事,把骰子拼成一个算法。

 
Maxim Kuznetsov:

这是因为微软公司在负责 :-)

你认为为什么人们在升级和激活盗版系统的产品时,会丢失他们的登录信息?

微软与dll签名密钥 有什么关系? 那只是识别开发者。
签署dll的钥匙,可以由MQ发放给那些在市场上被充分识别的人。
通过这个密钥,开发者在他的dll上签名,以确定谁写了这个dll。
dll签名密钥不影响产品的激活。

 
Maxim Kuznetsov:

///

你能理解MKL上没有合适的GUI吗?你有的那个是95年的。无耻之徒...而你与对第三方GUI的呼吁,你是否想过如何在MT中使用它?如何连接它?或者不给蜂蜜,让我告诉你一个陈词滥调?))

 
Реter Konow:

你能理解MKL上没有合适的GUI吗?你有的那个是95年的。无耻之徒...而你与对第三方GUI的呼吁,你是否想过如何在MT中使用它?如何连接它?或者不给你一个蜂蜜,让我告诉你一个陈词滥调?))。

彼得,我可能会让你大开眼界,为马克西姆说话:马克西姆比任何人都了解这个问题,大约一年半前,他发布了他的GUI版本,算是在标记的基础上形成了它。此外,图形用户界面是在外部环境中建立的,但它与方案(指标、专家顾问)有充分的互动。

马克西姆,对不起,回答你的问题。

然而,我想回到这个话题上来。我从一篇关于标准库 操作的文章中抽出一张图片。


这张截图以简化的形式显示了对话框的组成。

在这个版本中,Border是在图表上创建画布对象的主要元素,所有的从属对象都在它上面绘制。或者说,它的绘制取决于从属对象。

关闭按钮被画在标题上,标题被画在边框上,然后边框与所有画好的元素一起被画在画布上。

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

彼得,我可能会打开你的眼睛,为马克西姆告诉你:马克西姆比任何人都熟悉这个话题,大约一年半前,他发布了他的GUI的版本,好像是在标记的基础上形成。此外,图形用户界面是在外部环境中建立的,但它与方案(指标、专家顾问)有充分的互动。

马克西姆,对不起,回答你的问题。

然而,我想回到这个话题上来。我从一篇关于标准库 操作的文章中抽出一张图片。


这张截图以简化的形式显示了对话框的构成。

在这个版本中,Border是在图表上创建画布对象的主要元素,所有的从属对象都在它上面绘制。或者说,它的绘制取决于从属对象。

关闭按钮被画在标题上,标题被画在边框上,这个按钮和所有画出的元素被画在画布上。

我不知道他发布了什么,他在GUI中做了什么事情,但在我的线程中,他没有提出任何技术建议、解决方案或讨论这个问题。只有空洞的扯皮,指出第三方的解决方案,并敦促不要重新发明轮子。

回到眼前的话题。

就我对标准库的熟悉程度而言(实际上非常少),那里的元素和窗口是由MT对象组成的。也就是说,在我们的背景下--它们不是画在画布上的。当然,它们是被画出来的,但不是在我们的画布上,这使我们无法控制像素颜色,创建表面渐变等。

理论上,我们可以把库的结构,复制并在画布上做一个模拟。在理论上...

问题是,CCanvas本身并不适合在其上制作GUI。为什么?因为Kanvas系统主要用于图形基元。因此,从本质上讲,这个类除了提供基元外,不提供任何东西。GUI原型必须由自己建立。而在这种情况下,这门课是没有必要的。用自己的解决方案来做更方便。毕竟,你可以画一个长方形的标记,而不需要类。就像你可以创建或加载一个画布。这非常简单。因此,我更喜欢我自己的解决方案。

但有人不能没有CCanvas。这就是我不坚持的原因。

 
Реter Konow:

我不知道他发了什么帖子,在GUI事项上做了什么,但在我的线程中,他没有提出任何技术建议,没有解决方案,也没有讨论这个问题。只有空洞的扯皮,指出第三方的解决方案,并敦促不要重新发明轮子。

回到眼前的话题。

就我对标准库的熟悉程度而言(实际上非常少),那里的元素和窗口是由MT对象组成的。也就是说,在我们的背景下--它们不是画在画布上的。当然,它们是被画出来的,但不是在我们的画布上,这使我们无法操作像素颜色,创建表面梯度和更多。

理论上,我们可以把库的结构,复制并在画布上做一个模拟。在理论上...

问题是,CCanvas本身并不适合在其上制作GUI。为什么?因为Kanvas系统主要用于图形基元。因此,从本质上讲,这个类除了提供基元外,不提供任何东西。GUI原型必须由自己建立。而在这种情况下,这门课是没有必要的。用自己的解决方案来做更方便。毕竟,你可以画一个长方形的标记,而不需要类。就像你可以创建或加载一个画布。这非常简单。因此,我更喜欢我自己的解决方案。

但有人不能没有CCanvas。因此,我不坚持这样做。

停!彼得(对吗?),让我们制定一些公约来理解对方。条件1:我们不会把画布称为CCanvas类,而只是用画布来绘制屏幕的一部分或具体的一个资源。CCanvas类与这些都没有关系,我们完全不会纠缠于此。它只是提供了在该画布上作画的功能,仅此而已。事实上,我们可以用很多不同的方法来画。

通过 "绘制",我们将理解形成一个像素阵列,在此基础上创建一个资源,然后将其放置在图表上。

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

停!彼得(对吗?),让我们接受一些约定俗成的相互理解。条件1:我们不会把CCanvas称为一个类,而只是一个画布,用来绘制屏幕的一部分,或者具体是一个资源。CCanvas类与这些都没有关系,我们完全不会纠缠于此。它只是提供了在该画布上作画的功能,仅此而已。事实上,我们可以用很多不同的方法来画。

通过 "绘制",我们将理解形成一个像素阵列,在此基础上创建一个资源,然后放在图表上。

这就对了。

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

彼得,我可能会让你大开眼界,替马克西姆告诉你:马克西姆比任何人都熟悉这个话题,大约一年半前他发布了他的GUI版本,这个版本是在标记的基础上形成的。此外,图形用户界面是在外部环境中建立的,但它与方案(指标、专家顾问)有充分的互动。

马克西姆,对不起,回答你的问题。

然而,我想回到这个话题上来。我从一篇关于标准库 操作的文章中抽出一张图片。


这张截图以简化的形式显示了对话框的组成。

在这个版本中,Border是在图表上创建画布对象的主要元素,所有的从属对象都在它上面绘制。或者说,它的绘制取决于从属对象。

关闭按钮画在Caption上,Caption画在Border上,所有元素都画在画布上。

当然,这并不完全正确 :-)

我把一个接口放到一个Tcl DLL(这是工具通用语言)上,它有一个Tk图形,作为Python/Ruby/等的GUI来共享

我们的目标不是为了得到一个GUI,而是一个漂亮的副产品 :-)

tcl.Eval("button .pressme -text {Hello Peter}; pack .pressme") ;

在我看来,方便,而且最重要的是短。)

我不是在煽动任何人--我了解tcl/tk,我使用它,我分享我的经验(见sourceforge atcl)。