Tangram与软件的组合构造

2024-01-17 14:58
文章标签 组合 软件 构造 tangram

本文主要是介绍Tangram与软件的组合构造,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2005年04月06日 09:59:00
Tangram 与软件的组合构造
Tangram是中文"七巧板"的英文对应物,大概老外们认为"七巧板"是唐朝人的睿智游戏,而海外唐朝就象征着中国。"七巧板"表现出明显的朴素的构造化思想,以7个元素为基,尽情的造你能所造。最早开发Tangram的时候,这个系统取个什么名字,颇费一番脑筋,好的创意一定得有相配的名字。七巧板的想法就是给一个软件系统一个充分大的"基",在这个"基"的基础上允许你进行符合规则的构造。软件功能的组合构造是一个十分有趣的问题,首先你必须提供组合构造的基础,其次你必须制定组合构造的规则,然后你必须给出参与组合的成员元素之间的调度、交互方案。
HTML模型是一个很有趣的例子,通过提供一组控件,你就可以构造多彩的页面了,最早我就是通过驱动HTML的扩展接口来实现HTML模型与MFC、ATL等框架对接的,典型的做法是,设计一个IDispatch对象IExtDisp,这个对象能够访问你的对象模型,然后再想办法将这个对象与HTML模型绑定,MSHTML库提供了这个机制。通过如上的处理,你可以在你的HTML页面中调用你的对象指令系统,一个典型的例子就是Visual Studio .NET的代码向导(Wizard)的实现。尽管HTML指令可以扩展,但却不是一个好的选择,我最终将HTML作为一个更大的"基"的一个成员来对待,之所以如此,是因为HTML的表现力还嫌不足,因为毕竟这些东西不是程序或者不像程序。早期使用Delphi时,VCL中有一类Frame对象给我留下很好的印象,从形式上看,一个CFrameWnd与Delphi的Frame很像,但不是。一般来说,Delphi的对象是编译前的,也就是说,(绝大多数)Delphi等系统的对象要经过编译后才能使用,因此选择Delphi为Tangram主体构造的可行性被排除了(事实上Delphi一样可行,因为Delphi支持RTTI)。构造Tangram的时候,就想到要支持Delphi的Frame对象(现在实现的Tangram系统可以支持Delphi/BCB的ActiveForm)。最终选定MFC作为Tangram的底层基础是因为MFC更好的支持RTTI(运行时类信息),以及MFC有灵活的存储机制(MFC的存储机制简陋但不失为强大!)。
让我们看一个较为复杂的Frame窗体:
(一个合成的Frame窗口)
上面的窗体是由一个.NET Control、二个UserForm以及一个MFC View合成,Frame框架是由二个Splitter以及一个Excel风格的TabWnd构成。软件的组合系指:先完成Frame框架,然后将上述对象(一个.NET Control、二个UserForm以及一个MFC View)"安装"上去,构架的格局可能有多种,如果一个程序没有内置设计引擎,程序员就辛苦了,用户的定制能力也就极大地被限制了,Tangram的设计目标就是保证这一切可以"可视化"地完成!而且完成得足够专业。一般来说,HTML不能满足程序员的要求,而程序员又无法或很难具备HTML的灵活性,在这方面,Tangram给出一个折中的方案:具备HTML的可设计、编辑性,有具有程序界面的视觉。传统的程序,由于被操作的对象大多驻留在程序内部,因此,可设计性被极大地限制了,Tangram立足于提供一个足够广泛的"软件对象基",使得可设计性成为事实,如果MFC View、ActiveX Ctrl/ActiveX Document、.NET Control、HTML、Flash等类型的元素成为一个超级"七巧板"中的原子成分,等待你的将是一个巨大无比、色彩斑斓的对象世界,掌握Tangram,你就控制了Microsoft的组件世界,你就拥有无限的连接能力..
(内置VBA后的Form对象)
(二次开发)
(Form设计)


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=337997


这篇关于Tangram与软件的组合构造的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616400

相关文章

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

hdu4869(逆元+求组合数)

//输入n,m,n表示翻牌的次数,m表示牌的数目,求经过n次操作后共有几种状态#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#includ

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记录生活,只要是剪辑得漂亮,肯定能一下子吸引大家的目光,让人记得你。咱们今天就来侃侃现在超火的三款视频剪辑工具,尤其是PR剪辑,你肯定听说过,这货在剪辑界可是大名鼎鼎,用它剪视频,既专业又麻利。 NO1. 福昕轻松

秒变高手:玩转CentOS 7软件更换的方法大全

在 CentOS 7 中更换软件源可以通过以下步骤完成。更换源可以加快软件包的下载速度,特别是当默认源速度较慢时。以下是详细步骤: 前言 为了帮助您解决在使用CentOS 7安装不了软件速度慢的问题,我们推出了这份由浪浪云赞助的教程——“CentOS7如何更换软件源加快下载速度”。 浪浪云,以他们卓越的弹性计算、云存储和网络服务受到广泛好评,他们的支持和帮助使得我们可以将最前沿的技术知识分