文章 "图形界面 X: 多行文本框控件 (集成编译 8)"

 

新文章 图形界面 X: 多行文本框控件 (集成编译 8)已发布:

讨论多行文本框控件。不同于 OBJ_EDIT 类型的图形对象, 这一版本没有输入字符数量的限制。它还添加了将文本框转换为简单文本编辑器的模式, 其内可以使用鼠标或键盘移动光标。

键盘按键可以划分成若干组 (参见图例. 1 中的示意):

  • 控制键 (橙色)
  • 功能键 (紫色)
  • 字母数字键 (蓝色)
  • 导航键 (绿色)
  • 数字键盘 (红色)

 图例. 1. 按键组 (QWERTY 键盘布局)。

图例. 1. 按键组 (QWERTY 键盘布局)。


作者:Anatoli Kazharski

图形界面 X: 多行文本框控件 (集成编译 8)
图形界面 X: 多行文本框控件 (集成编译 8)
  • 2017.03.16
  • Anatoli Kazharski
  • www.mql5.com
讨论多行文本框控件。不同于 OBJ_EDIT 类型的图形对象, 这一版本没有输入字符数量的限制。它还添加了将文本框转换为简单文本编辑器的模式, 其内可以使用鼠标或键盘移动光标。
 

首先,感谢您的文章。

我有一个很大的请求--请制作一个 gif动画。我们不可能客观地了解元素是如何工作的。你需要用眼睛去看。

如果不难的话。

谢谢。

 
Реter Konow:

...

一个很大的请求 - 请制作一个 gif 动画。我们不可能客观地了解元素的工作原理。您需要亲眼目睹。

请将文件下载到您的电脑上并亲自测试。这会比gif 动画 更好。
 
Anatoli Kazharski:
请将文件下载到您的电脑上并亲自测试。它会比 gif 动画更好看。

以下是我的设想:

1.完成 OOP 的学习。

2. 完成对库中所有相互关系的学习--类、函数、变量....。

3.编写一个 EA,实现文章中描述的元素。不过,即使这样,我也可能会遇到困难,我必须在这里与您通信,帮助您解决这些困难。


当然,这个方案更好,但我只能在几周或几个月内实现它....。

在这里,只要几十分钟,大家就能看到结果......

好吧,来吧...

 
Реter Konow:

我是这样设想的:

1.完成 OOP 的学习。

2. 将库的所有相互关系研究到底--类、函数、变量....。

3.编写一个 Expert Advisor,实现文章中描述的内容。不过,即使这样,我也可能会遇到困难,我必须在这里与您通信,帮助您解决这些困难。


当然,这个方案更好,但我只能在几周或几个月后才能实现....。

在这里,只要几十分钟,大家就能看到结果......

来吧...

您只需从文末的存档中下载文件,然后编译 Expert Advisor 进行测试。所需的时间不会超过一分钟
 
 
Anatoli Kazharski:

谢谢。

光标可以完美地在文本上运行。它可以通过鼠标和按键移动。文字可以滚动。我就是这么想的。

但我不明白的是,文字是如何出现在画布上的。你在视频中没有展示。

 
Реter Konow:

...

但我不明白文字怎么会出现在画布上。你在视频中没有展示。

从键盘输入文本的方式与在画布上输入文本的方式相同。视频中也显示了这一点(输入文本 "Hello world!")。

下载测试文件并亲自尝试。

 
Anatoli Kazharski:

就像您从键盘输入一样,它也会出现在画布上。视频也显示了这一点。

请下载测试文件并亲自尝试。

在视频中,您在顶部的输入框 中输入文本。"世界你好!"不会出现在画布上。这就是我问这个问题的原因。


已添加:

我下载了程序库,但老实说,我不知道该怎么做。没有任何说明。

 
Реter Konow:
在视频中,您在顶部的输入框 中输入文本。"世界你好!"并没有出现在画布上。这就是我要问的原因。

视频中有两个使用文章中的CTextBox 类创建的输入框。

第一个输入框为单行模式。第二个输入框为多行模式。文章在 "元素测试应用程序 "部分谈到了这一点:

为了进行测试,让我们创建一个具有图形界面的 MQL 应用程序,其中将有两个文本输入框。一个是单行模式,另一个是多行模式。

也许在提问和发言之前,您应该先阅读文章并测试所提供的测试文件?这是进行讨论所必需的最起码的条件。

 
Anatoli Kazharski:

视频展示了使用文章中的CTextBox 类创建的两个输入框。

第一个输入框为单行模式。第二个输入框为多行模式。这在文章的 "元素测试应用程序 "一节中有所描述:

也许在提问和发表意见 之前,您应该先阅读文章并测试所提供的测试文件?这是讨论的起码要求。

顺便说一句,我没有发表任何声明。我读了这篇文章,但我没有理解主要内容(有很多代码,我的眼睛会迷失方向)。

如果可以,请回答几个问题:

1.在项目测试程序中,声明了一个用字符串初始化的数组。这是否意味着字符串从数组进入画布,还是可以直接打印到画布上?

2.顶部输入框是独立的,与底部画布无关?因此文本不会从它传输到网页上?它的作用是增加输入字符数吗?

3. 如果画布文本是在程序内部初始化的,而不是写在画布上,为什么需要运行光标?

4.是否可以用光标擦除网页上的文字,然后用键盘添加?


谢谢。