云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

MySQL数据库_ods数据库_免费领

小七 141 0

几天前,我写了一篇关于我最喜欢的一个学习项目的博客,这个项目教会了我很多关于GUI编程的知识:guidrasil

今天我想解释一下我在这个项目中使用的一些技术。

什么是控件?

控件是ActiveX组件(也称为OCX组件),将在SAPGUI中使用。这些Windows组件由SAP中相应的类控制。控件的创建主要遵循以下模式:

典型的GUI控件是:

CL\u GUI\u ALV\u GRIDCL\u GUI\u文本编辑CL\ u GUI\ u图片日历CL\ GUI\ HTML\查看器CL\u GUI\u简单树目录树CL\u GUI\u LIST\u TREE

控件需要一个容器,放置在其中。所有容器控件都继承自CL\u GUI\u容器:

CL\u GUI\u DOCKING\u ContainerCL\ GUI\自定义\容器CL\u GUI\u DIALOGBOX\u CONTAINER

Splitter控件是一种特殊的控件,因为它们再次提供子容器:

CL\u GUI\u Splitter\u CONTAINERCL\u GUI\u EASY\u SPLITTER\u CONTAINER

一个典型的编程如下:

创建一个容器在此容器中创建控件设置控件的属性

在这个演示程序中,我演示了如何在停靠容器中创建Textedit控件。

每个控件有不同的属性,每个控件需要不同的设置。textedit控件需要被告知它是只读的,picture控件需要知道要显示的图片。这就是问题所在:如果你非常了解一个控件,那么你就不知道所有必要的属性。否则,大数据是干嘛的,您将不得不阅读文档、搜索示例或浏览控件方法。

有时标志的设置不同。有时您需要一个布尔标志(X或空格),有时方法需要一个整数(1或0)。

GUI设计器的想法

因为所有控件都是从CL\u GUI\u控件继承的,所以可以将任何控件传递给方法或将其取回。或者可以创建控件并将其存储在参考表中。

下面的报告正是这样做的:您可以在选择屏幕上设置属性,并通过按来创建控件。所有创建的控件将存储在一个内部表中。

一旦我在一个表中创建了所有容器和控件,我就可以读取类型和属性。例如,淘客查询,我可以循环所有创建的控件并询问容器是否为CL\u GUI\u DOCKING\u container类型。如果是,淘客返利app,我转换到本地对象引用并读取属性边和比率:

这样我可以收集任何控件的所有重要属性。

借助RTTI(运行时类型信息)和类CL\u ABAP\u TYPEDESCR,我可以得到对象的类名:

一旦我有了名称,我就可以动态创建对象:

动态创建是没有必要的,因为它更容易推出这个部分到一个创造者类。一件重要的事情是guidrasil提供了一种更方便的方法来创建容器和控件:一旦您选择了容器的一侧,GUI设计器将拆分容器,并在顶部放置一个工具栏,返现卡,在底部显示空容器。在工具栏中,您可以选择所提供的容器和控件中的一个。

Gui设计师知道哪些控件已创建,以及在何处创建。creator类创建控件并保存属性。

此外,creator类提供了一个对话框或属性的可视化设置:

我宁愿编写编写代码也不愿编写代码

guidrasil的另一个特性是,大数据指的是什么,每个creator类都确切地知道必须如何创建控件。这意味着它可以提供用于创建此控件的源代码。

GUI设计者完全了解控件,只需向每个控件创建者请求创建代码即可。GUI设计器"简单地"将不得不将各个部分放在一起,生成一个报告,以便重新创建所有控件。

abapGit

GUI设计器guidrasil可通过Github上的abapGit获得:

https://github.com/tricktresor/guidrasil