⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oobject102306.htm

📁 UML基础(好)
💻 HTM
📖 第 1 页 / 共 5 页
字号:
              </font><font face="Comic Sans MS" color="#000000">Class </font><font color="#000000">形式,但是透過 
              </font><font face="Comic Sans MS" color="#000000">private </font><font color="#000000">與 
              </font><font face="Comic Sans MS" color="#000000">public </font><font color="#000000">的宣告,一樣具有所謂資訊封裝的效果。</font></p>
              <div style="BORDER-RIGHT: 2px solid; PADDING-RIGHT: 4px; BORDER-TOP: 2px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; BORDER-LEFT: 2px solid; PADDING-TOP: 1px; BORDER-BOTTOM: 2px solid; BACKGROUND-COLOR: #ffccff">
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">procedure 
                TForm1.Button1Click(Sender: TObject);</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">begin</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                TWidgetControl(Sender).Enabled := not 
                TWidgetControl(Sender).Enabled;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">end;</font></span></p>
              </div>
              <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;</font></span></p>
              <p class="MsoNormal" style="MARGIN: 6pt 0cm 12pt; TEXT-INDENT: 24pt"><font color="#000000">上面的範例是 
              </font><font face="Comic Sans MS" color="#000000">Delphi </font><font color="#000000">的一個動態連結的範例,我們可以看到參數 
              </font><font face="Comic Sans MS" color="#000000">Sender </font><font color="#000000">在編輯時期,並未確定它的真正型態,而是到了執行時期,我們才藉由 
              </font><font face="Comic Sans MS" color="#000000">TWidgetControl </font><font color="#000000">類別取得 
              </font><font face="Comic Sans MS" color="#000000">Enabled </font><font color="#000000">的屬性值。而這樣的效果在 
              </font><font face="Comic Sans MS" color="#000000">VB </font><font color="#000000">中,用不定型態,物件變數或者利用 
              </font><font face="Comic Sans MS" color="#000000">COM </font><font color="#000000">的特性,一樣可以達成。例如我們可以運用物件變數</font><font face="Comic Sans MS" color="#000000">(</font><font color="#000000">如:</font><font face="Comic Sans MS" color="#000000">Object</font><font color="#000000">、 
              </font><font face="Comic Sans MS" color="#000000">Control)</font><font color="#000000">,來達到這樣的結果:</font></p>
              <div style="BORDER-RIGHT: 2px solid; BORDER-TOP: 2px solid; BORDER-LEFT: 2px solid; BORDER-BOTTOM: 2px solid; BACKGROUND-COLOR: #ffccff">
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">Public 
                Sub EnableControl( Sender as Object)</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Sender.Enabled = not Sender.Enabled</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">End 
                Sub</font></span></p>
              </div>
              <p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-INDENT: 24pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;</font></span><font color="#000000">當然,若要檢查型態,只要運用 
              </font><font face="Comic Sans MS" color="#000000">Typeof </font><font color="#000000">或 
              </font><font face="Comic Sans MS" color="#000000">TypeName </font><font color="#000000">來確認型態即可,我們可以對上面的程式做些修改:</font></p>
              <div style="BORDER-RIGHT: 2px solid; BORDER-TOP: 2px solid; BORDER-LEFT: 2px solid; BORDER-BOTTOM: 2px solid; BACKGROUND-COLOR: #ffccff">
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">Public 
                Sub EnableControl( Sender as Object)</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="en-us" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                If TypeName(Sender) = &quot;TWidgetControl&quot; then</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                Sender.Enabled = not Sender.Enabled</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="en-us" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                End If</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">End 
                Sub</font></span></p>
              </div>
              <p class="MsoNormal" style="MARGIN: 12pt 0cm; TEXT-INDENT: 24pt"><font color="#000000">從上面的推演結果,相信讀者已經認可筆者的假設是可以獲得成立的,也就是說 
              </font><font face="Comic Sans MS" color="#000000">VB </font><font color="#000000">是支援 
              </font><font face="Comic Sans MS" color="#000000">OO </font><font color="#000000">的程式語言。嗯!這樣的說法相當弔詭,而且在理論基礎上也有些牽強,不過本文撰寫的目的,不是要賣弄詭辯之術,而是要藉此機會向各位讀者說明,<b>其實物件導向程式設計是一種『設計的方法』、一種『思考模式』而不是一種『定理』</b>。這樣說太模糊了,我們還是範例來說明吧!</font></p>
              <p class="MsoNormal" style="MARGIN: 6pt 0cm 12pt; TEXT-INDENT: 24pt"><font color="#000000"><img height="156" hspace="3" src="OOPIsTOM01.jpg" tppabs="http://www.dotspace.idv.tw/sofeeng/2002/image/OOPIsTOM01.jpg" width="288" align="right" vspace="3" border="0">右圖的範例是一個含有三組以三個 
              </font><font face="Comic Sans MS" color="#000000">Button</font><font color="#000000">作為 
              </font><font face="Comic Sans MS" color="#000000">Group </font><font color="#000000">的程式,當使用者按下第一個按鈕時,會 
              </font><font face="Comic Sans MS" color="#000000">Disable </font><font color="#000000">本身,並且 
              </font><font face="Comic Sans MS" color="#000000">Enable </font><font color="#000000">第二個按鈕,同理其他的按鈕也是如此,這樣的作法,在於讓使用者依次序來按下 
              </font><font face="Comic Sans MS" color="#000000">Button </font><font color="#000000">而不讓有次序不同的操作出現,而這個範例之中,筆者提供了三種不同的撰寫方式,現在我們來看看它們的程式碼是如何的:</font></p>
              <p class="MsoNormal" style="MARGIN: 6pt 0cm 12pt; TEXT-INDENT: 24pt"><font color="#000000">第一種,分別在各自 
              </font><font color="#000000"><font face="Comic Sans MS">Button </font>的 
              <font face="Comic Sans MS">OnClick </font>事件撰寫處理的程式碼。</font></p>
              <div style="BORDER-RIGHT: 2px solid; PADDING-RIGHT: 4px; BORDER-TOP: 2px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; BORDER-LEFT: 2px solid; PADDING-TOP: 1px; BORDER-BOTTOM: 2px solid; BACKGROUND-COLOR: #ffccff">
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">procedure 
                TForm1.Button1Click(Sender: TObject);</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">begin</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button1.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button2.Enabled := True;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button3.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">end;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">procedure 
                TForm1.Button2Click(Sender: TObject);</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">begin</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button1.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button2.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button3.Enabled := True;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">end;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">procedure 
                TForm1.Button3Click(Sender: TObject);</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">begin</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button1.Enabled := True;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button2.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button3.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">end;</font></span></p>
              </div>
              <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt"><span lang="EN-US"><font face="Comic Sans MS" color="#000000">&nbsp;</font></span></p>
              <p class="MsoNormal" style="MARGIN: 6pt 0cm 12pt; TEXT-INDENT: 24pt"><font color="#000000">第二種,在某一個 
              </font><font face="Comic Sans MS" color="#000000">Button </font><font color="#000000">的 
              </font><font face="Comic Sans MS" color="#000000">OnClick </font><font color="#000000">事件中撰寫處理程序,然後其他 
              </font><font face="Comic Sans MS" color="#000000">Button </font><font color="#000000">的 
              </font><font face="Comic Sans MS" color="#000000">OnClick </font><font color="#000000">事件再指向這個處理程序。</font></p>
              <div style="BORDER-RIGHT: 2px solid; PADDING-RIGHT: 4px; BORDER-TOP: 2px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; BORDER-LEFT: 2px solid; PADDING-TOP: 1px; BORDER-BOTTOM: 2px solid; BACKGROUND-COLOR: #ffccff">
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button4.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button5.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                Button6.Enabled := False;</font></span></p>
                <p class="MsoNormal" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; TEXT-INDENT: 27pt"><span lang="EN-US" style="FONT-FAMILY: Comic Sans MS"><font color="#000000">&nbsp;&nbsp; 
                if Sender = Button4 then Button5.Enabled := True;</font></span></p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -