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

 
o_O:

不幸的是,代码并不完整。现在,图表事件并不区分AA 的区别。

我已经在《SD》中写到了这一点。

国务院关于这个问题的好消息

下一次构建将为CapsLock和Shift的状态添加TerminalInfoInteger 常量。

现在他们是无证的。

1020 - CapsLock
1016 - Shift
1255 - 当前输入语言代码

也就是说,编辑工作已经进行了一半。))

第二项任务是教会图表捕捉空间和进入。

 
Vasiliy Sokolov:
如果有任何滞后,肉眼是看不见的。在我的面板中,MouseMove一度发送了成千上万的项目,包括不可见的,然后我做了一个更聪明的邮寄,但从视觉上看,它并没有增加速度。
肯定有滞后性。这取决于项目的数量。我检查了一下。当对象的数量开始超过400-500个拖放时,我的窗口开始变慢......。几个月来,我一直在努力提高代码效率,但我还没有设法克服这种影响。我认为,电脑越强大,它拖动的对象越多,速度就越慢,这一点是无法察觉的。
 
Реter Konow:
肯定有刹车。这取决于对象的数量。我已经检查过了。当对象的数量开始超过400-500个时,拖放我的窗口就开始变慢......。几个月来,我一直在努力提高代码效率,但我还没有设法克服这种影响。我认为,电脑越强大,越多的物体的滞后将保持不被察觉。
性能受事件传递的算法+项目对传递事件的最小响应影响。看来,在你的案例中,速度减慢不是因为事件本身,而是因为处理这些事件的算法。
 
o_O:

一个indikator的多个实例是否会输出到一个画布上? 我不知道。这有点令人毛骨悚然。

Nah.我只需要一个MouseDown事件,我就会很高兴。
 
Комбинатор:
Nah.总之,我所需要的是MouseDown事件,我将
监控CHARTEVENT_MOUSE_MOVE事件,它传输鼠标、Crtl和Shift键的状态。
 
Vasiliy Sokolov:

在我看来,在阿纳托利的文章之后,再次在简介中创造同样的鸡蛋,至少是一种奇怪的消遣。图形对MT来说根本不是一个热门话题。

  • 用户不需要图形化界面。因此,不可能对GUI进行监控,它的发展将永远不会有回报。
  • 如果你想提高技能,最好是立即在初级的地方找一份工作。因此,至少你会马上开始赚一些钱,并慢慢提高你的技能。
  • 目标受众太窄。谁需要图书馆?- 绝对没有人,除了少数几个程序员,而且他们早就写好了他们需要的所有库。例如,我有两个属于自己的图形库。

我不想在这里教导任何人,但有一个建议:伙计们,闻闻粉末。学习如何与用户 合作。了解他们的心理。学 习如何监督他们的想法。然后迅速落到实处,你会以完全不同的方式进行推理。我也曾经相信过一些特殊的、美丽的想法,但所有这些胡言乱语,都不起作用。你在这里讨论的东西对任何人都没有用,除了你自己。

+ 这就对了

我唯一 一次 对用户说--让我们做一个非常酷和漂亮的界面!"。

他们真正需要的是一个没有任何花哨装饰和额外功能的专家顾问--也就是说,没有一个漂亮的用户友好界面!他们需要的是一个专家顾问。

用户想要的最重要的东西是产品按照职权范围运作。

我们都知道,界面的开发+设计--需要相当多的时间,但调试却需要花费非常昂贵的资源TIME!

 
Ilyas:
监控CHARTEVENT_MOUSE_MOVE事件,它发送鼠标、Crtl和Shift键的状态。
正如我在上面解释的,这个事件与对象没有关系,而且发送得太频繁。不被一个物体所束缚是更重要的。
 
Ilyas:
监控CHARTEVENT_MOUSE_MOVE事件,它传输鼠标、Crtl和Shift键的状态。

并不完全是所期望的那样。

OBJECT_CLICK事件是在鼠标抬起后产生的,当鼠标被按在一个物体上时,无法跟踪。

我想要一个启动事件。当鼠标按在对象上时。

组合器
我在上面解释过,这个事件与对象没有联系,而且发送得太频繁。不被对象所束缚是更重要的。
CHARTEVENT_OBJECT_DRAG - 我记得它 不是在运动开始时产生,而是在鼠标释放后产生的?
 
o_O:
CHARTEVENT_OBJECT_DRAG 几乎是无用的事件。因为它预示着以标准方式 拖动图形对象的结束 (即它应该被选中,而被选中的对象按del键可以完美地被删除)
 
Vasiliy Sokolov:
性能受事件传递算法+对传递事件的最小项目响应影响。看来,在你的案例中,速度慢不是因为事件本身,而是因为处理这些事件的算法。

看,事件的传递和算法是最简单的:在MouseMove事件的OnChartEvent()中,鼠标左键被按下的状态也是固定的,我们捕捉窗口移动手柄的事件。接下来,调用 窗口移动函数,其中X和Y的移动(使用ObjectSetInteger())等于当前光标的移动,被应用于循环内的所有窗口对象。这就是全部。

同时,很明显,窗口中的物体越多,必须移动的物体就越多。显然,大量需要移动的对象是导致速度减慢的原因......