第十章 编写简单的组件程序 本章概述 本章目的是演示如何通过使用组件开发工具包开发一个简单的、具有图形用户界面的IDL 程序
“组件”一词是指用来表示用户与程序输入输出交互作用的图形元素
按钮、滑动条和文本框都是组件
组件工具箱是一套 IDL API 命令的集合,它主要用于开发图形界面程序
在本章中,将学到以下方面内容: 1
组件定义模块和组件事件处理模块的区别; 2
如何编写组件定义模块; 3
如何编写组件事件处理模块; 4
如何解释和理解组件的事件结构; 5
如何创建不同类型的组件,比如顶层 base 组件,绘图组件和按钮组件; 6
组件程序模块之间在不使用公共块的情况下如何传递信息; 7
如何编写一个具有可改变大小的图形窗口的组件程序; 8
如何向组件程序中添加简单控制按钮; 组件程序的结构 许多 IDL 程序(比如前一章的ImageBar 程序)只是由单一的程序模块组成,而组件程序至少包含两个种程序模块
组件定义模块是一个必不可少的程序模块,它可以是过程,也可以是函数
组件本身的创建或定义就是在组件定义模块中进行的
并且,还至少有一个事件处理模块(可以是过程也可以是函数),它对组件事件、触发器或用户的交互作用做出反应,并加以处理
(请看下图81) 甚至简单的组件程序也有几个事件处理模块,每一个模块都对不同的事件或触发器做出反应
这就要求在事件处理模块和组件定义模块之间对程序的某些信息进行共享
组件编程的主要技巧在于如何在构成组件程序或应用程序的各种程序模块之间传递程序信息
图8 1 组件程序中的信息流从定义模块,通过事件结构传递到事件处理模块
一般而言,定义模块只执行一次,而事件处理模块却是重复执行
组件程序也被称为事件驱动程序,这意味着程序事先并不知道程序执行的顺序
当用户对程序的组件元素进行交互作用时就会产生事件,然后事件处理模块根据事件产生