graphics - 作为/400 : other way for display graphics?

标签 graphics ibm-midrange display rpg

我知道 DDS 文件的存在,允许在 as/400 上对显示图形进行编程,但是还有其他方法吗?

具体来说,我想要做的是直接操作终端缓冲区,以便能够显示除文本之外的任何其他内容。 例如,终端如下所示:enter image description here

假设,在内存中,将有一个二维字符数组:text[20][80] 用于文本菜单,低于该数组,将有一个大小为 [200][800] 的像素缓冲区数组。

有没有办法直接访问这些数组? 我希望能够完全用 C 创建一个可显示的菜单,而不需要显示文件,并且还可以直接在像素缓冲区中显示其他类型的图形(图像)。

最佳答案

Is there a way to access either of those arrays directly?

这很简单,尽管仍然需要一个没有格式化字段的“显示文件”。 "file"将是程序和物理设备(或模拟器)之间的连接。您可以定义一个大区域,其中包含您希望程序放入其中的任何“文本”。这甚至可以包括分隔输入区域的显示字段属性。

为了获得最大程度的控制,DDS USRDFN keyword是合适的。但对于菜单项列表之类的简单内容,几乎任何大型文本字段都可以输出。

输出简单文本很容易。对于 USRDFN 格式化等详细内容,需要详细了解 5250 协议(protocol)。

一种替代方法是使用 User Interface Manager (UIM) APIs通过 USREXIT= 应用程序更新 PANEL 的“文本区域”(:TEXT)。 UIM 处理任何“显示文件”定义和实际 I/O 的所有事务。 UIM 可以被认为是 5250 的 HTML 界面,并使用非常相似的标记语言来定义 PANEL。

另一种选择是Dynamic Screen Manager (DSM) APIs 。这些方法比 UIM 或 DDS 方法提供更精细的控制(尽管 DDS USRDFN 非常接近)。但与 USRDFN 一样,实际的设备控制需要 5250 协议(protocol)知识。

...and also display other kind of graphics (images) directly in the pixel buffer.

5250 没有“像素缓冲区”,甚至没有“像素”。它是一种基于字符的协议(protocol),如 telnet。如果您想要图像或“像素”,那么您就会喜欢浏览器界面,或者可能是 Java 和 NAWT,或者 X-windows 等。

现在,假设使用 TCP/IP 和套接字,您基本上可以完成任何您能够编程的事情。无论您知道如何做,包括下载/安装第 3 方代码库,您都可以在服务器周围的网络限制范围内进行。但它实际上是一个服务器,因此 GUI 类型的应用程序通常不应在其上运行。这与几乎所有类型的服务器相同。在客户端系统而不是服务器上编写 GUI 代码。但如果你真的想的话,你可以做到。

关于graphics - 作为/400 : other way for display graphics?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307859/

相关文章:

graphics - 交互式图形,60fps,人类感知

java - iseries 上 Java 应用程序的推荐位置

javascript - "show/hide"带有 javascript 的 div 而不是 jquery,并且不带有显示 :none

php - HTML/CSS 可视化 RBAC 图

c++ - 如何使用 CGAL 简化组合映射

tsql - 创建从 Microsoft SQL 服务器到 AS/400 的连接

text - 添加新文本时,它出现在底部,其余文本上升

html - 如何使用 CSS 仅在移动设备上显示文本?

r - 如何将 R 图形设备设置为二维 Canvas ?

sql - 从多个网站通过 SQL 插入时如何自动增加 iSeries 数据库列?