Tangram與軟體的組合構造

2021-03-31 18:42:28 字數 1675 閱讀 9183

tangram與軟體的組合構造

tangram是中文「七巧板」的英文對應物,大概老外們認為「七巧板」是唐朝人的睿智遊戲,而海外唐朝就象徵著中國。「七巧板」表現出明顯的樸素的構造化思想,以7個元素為基,盡情的造你能所造。最早開發tangram的時候,這個系統取個什麼名字,頗費一番腦筋,好的創意一定得有相配的名字。七巧板的想法就是給乙個軟體系統乙個充分大的「基」,在這個「基」的基礎上允許你進行符合規則的構造。軟體功能的組合構造是乙個十分有趣的問題,首先你必須提供組合構造的基礎,其次你必須制定組合構造的規則,然後你必須給出參與組合的成員元素之間的排程、互動方案。

html模型是乙個很有趣的例子,通過提供一組控制項,你就可以構造多彩的頁面了,最早我就是通過驅動html的擴充套件介面來實現html模型與mfc、atl等框架對接的,典型的做法是,設計乙個idispatch物件iextdisp,這個物件能夠訪問你的物件模型,然後再想辦法將這個物件與html模型繫結,mshtml庫提供了這個機制。通過如上的處理,你可以在你的html頁面中呼叫你的物件指令系統,乙個典型的例子就是visual studio .***的**嚮導(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視窗)

上面的窗體是由乙個.*** control、二個userform以及乙個mfc view合成,frame框架是由二個splitter以及乙個excel風格的tabwnd構成。軟體的組合係指:先完成frame框架,然後將上述物件(乙個.*** control、二個userform以及乙個mfc view)「安裝」上去,構架的格局可能有多種,如果乙個程式沒有內建設計引擎,程式設計師就辛苦了,使用者的定製能力也就極大地被限制了,tangram的設計目標就是保證這一切可以「視覺化」地完成!而且完成得足夠專業。一般來說,html不能滿足程式設計師的要求,而程式設計師又無法或很難具備html的靈活性,在這方面,tangram給出乙個折中的方案:具備html的可設計、編輯性,有具有程式介面的視覺。傳統的程式,由於被操作的物件大多駐留在程式內部,因此,可設計性被極大地限制了,tangram立足於提供乙個足夠廣泛的「軟體物件基」,使得可設計性成為事實,如果mfc view、activex ctrl/activex document、.*** control、html、flash等型別的元素成為乙個超級「七巧板」中的原子成分,等待你的將是乙個巨大無比、色彩斑斕的物件世界,掌握tangram,你就控制了microsoft的元件世界,你就擁有無限的連線能力……

(內建vba後的form物件)

(二次開發)

(form設計)

使用Tangram構造你自己的軟體開發平台 一

2005年04月09日 10 42 00 使用tangram構造你自己的軟體開發平台 生產第乙個tangram程式主視窗 安裝tangram開發包後,開啟visual studio net 2003 ide,選擇新工程得到如下對話方塊 上圖顯示乙個預設的tangram程式的執行時影象。定製你的tan...

使用Tangram構造你自己的軟體開發平台(二)

使用tangram構造你自己的軟體開發平台 二 孫輝 使用tangram構造你自己的軟體開發平台 一 建立第乙個mfc cview元件庫 tangrammfc cview元件庫是乙個 元件庫,其中含有一組mfc cview類物件。首先,在vs 2003ide新建乙個tangram mfc 元件庫,為...

C 中類的組合與建構函式

首先看看建構函式的概念。在程式執行過程中,當遇到物件宣告語句時,程式會想作業系統申請一定的記憶體空間用於存放新建的物件。而編譯器不知道如何產生 來實現初始化。所以c 做了一套物件初始化的機制,就是建構函式。然後是類的組合中,當建立類的物件時,如果這個類具有內嵌物件成員,那麼各個內嵌物件將首先被自動建...