|
在開(kāi)始一切工作之前,請(qǐng)確保ActiveX控件已經(jīng)注冊(cè)到計(jì)算機(jī),請(qǐng)運(yùn)行系統(tǒng)安裝目錄下面“registeractivex.bat”。 在Delphi6.0中,先要把控件安裝進(jìn)去才能使用。 在菜單上選擇Component 選擇“Import ActiveX Control...”,打開(kāi)一個(gè)對(duì)話盒 按“Install...”按鈕后,詢問(wèn)要把控件加載到哪個(gè)包(Package)中。 按“OK” 按“Compile”,編譯這個(gè)包。 在工具欄上將出現(xiàn)下面兩個(gè)圖標(biāo),注意,如果上面“Palette Page”中選擇的不是“Standard”,這兩個(gè)圖標(biāo)將出現(xiàn)在其他工具頁(yè)。 左邊的控件是主要的Visual Graph ActiveX控件,右邊那個(gè)是屬性列表窗口。 新建一個(gè)程序(Application),選擇工具欄上左邊那個(gè)Visual Graph ActiveX控件,在應(yīng)用程序主窗口上用鼠標(biāo)拉框創(chuàng)建一個(gè)控件,這個(gè)控件的缺省名為vgctrl1。 第一步:填寫下面的代碼 procedure TForm1.FormShow(Sender: TObject); 這句程序執(zhí)行后,將在控件中設(shè)計(jì)一個(gè)新的Visual Graph視圖文件,控件支持Design(設(shè)計(jì))和Run(運(yùn)行)兩個(gè)函數(shù),無(wú)論接下來(lái)要干什么,一開(kāi)始必須執(zhí)行這兩個(gè)函數(shù)其中一個(gè),在繪圖版本中,多用Design函數(shù),用戶將可以用鼠標(biāo)在控件窗口上編輯圖形;在工業(yè)監(jiān)控等領(lǐng)域一般多用Run函數(shù),用戶不能用鼠標(biāo)直接編輯圖形,但用鼠標(biāo)點(diǎn)擊畫面上不同的圖形時(shí)會(huì)有各種控制事件發(fā)生,而且某些圖形還會(huì)產(chǎn)生動(dòng)作。如果要打開(kāi)一個(gè)視圖文件,參數(shù)是文件名。 第二步:在窗口上放一個(gè)按鈕Button1,雙擊這個(gè)按鈕,編寫下面的代碼 procedure TForm1.Button1Click(Sender: TObject); ActiveSheet是視圖文件的當(dāng)前頁(yè)面(頁(yè)面類),Visual Graph圖形系統(tǒng)支持多個(gè)頁(yè)面,當(dāng)前畫圖的工作都是在ActiveSheet上實(shí)現(xiàn)的,一般應(yīng)用中只要一個(gè)頁(yè)面就夠了,但是如果視圖文件是作為圖庫(kù)來(lái)用,它里面可能頁(yè)面就多了。 AddUnit是頁(yè)面類的函數(shù)成員,在ASheet頁(yè)面上添加一個(gè)文字單元,寬度和高度都是100。這句程序執(zhí)行后,用鼠標(biāo)點(diǎn)擊新生成的圖形,可以在上面輸入字符,或者用鼠標(biāo)移動(dòng)這個(gè)圖形,改變它的大小等。由于AddUnit返回的類型是通用的IUnit。 Text是基本圖形單元類的屬性成員,通過(guò)它修改圖形的文字屬性。 第三步:在窗口上再放一個(gè)按鈕Button2,雙擊這個(gè)按鈕,編寫下面的代碼 procedure TForm1.Button2Click(Sender: TObject); NewUnit是視圖類的命令函數(shù),執(zhí)行這句程序后,可以在畫面上用鼠標(biāo)畫線。 第四步:下面,我們要給控件加上相應(yīng)的事件,例如右鍵事件。 procedure TForm1.vgctrl1RButtonDown(Sender: TObject; X, Y: Double); UnitAtPoint是頁(yè)面類的函數(shù)成員,返回當(dāng)前鼠標(biāo)位置處的圖形單元。我們一般在右鍵事件上掛上菜單,用這種辦法我們就能知道當(dāng)前要對(duì)什么圖形對(duì)象進(jìn)行操作,然后,根據(jù)不同的圖形對(duì)象,產(chǎn)生不同的菜單內(nèi)容。此處也可以用下面的寫法: 第五步:上面這個(gè)程序有個(gè)漏洞,如果我們沒(méi)有首先單擊Button1按鈕創(chuàng)建一個(gè)圖形,那么這里的AUnit就是空,將使得最后一行程序出錯(cuò),因此,要修改為: procedure TForm1.vgctrl1RButtonDown(Sender: TObject; X, Y: Double); 第六步:下面我們添加元件。在窗口上再放一個(gè)Visual Graph ActiveX控件,把它設(shè)法放到看不到的地方(但是Visible屬性不能設(shè)置成False)。修改FormShow代碼 procedure TForm1.FormShow(Sender: TObject); 這里所指的controls.tbl在Visual Graph安裝目錄的bin子目錄下,此處編寫時(shí)要把路徑寫全。 在窗口上再放一個(gè)按鈕Button3,雙擊這個(gè)按鈕,編寫下面的代碼 procedure TForm1.Button3Click(Sender: TObject); NewUnit是視圖類的命令函數(shù),執(zhí)行這句程序后,可以在畫面上用鼠標(biāo)畫出按鈕的形狀來(lái)。實(shí)際上,這句程序執(zhí)行后,將從當(dāng)前指定的元件庫(kù)(vgctrl2)中尋找相應(yīng)名字的頁(yè)面。可以放置若干個(gè)控件,打開(kāi)多個(gè)圖庫(kù)文件。如果需要用程序添加“button”這個(gè)元件,就執(zhí)行vgctrl1.vg.ActiveSheet.AddUnit( vgctrl2.vg, 'button' )。 第七步:下面我們給上面的按鈕增加一個(gè)雙擊事件,為它增加自定義屬性MyProp procedure TForm1.vgctrl1DblClick(Sender: TObject); 不同類型的元件,用Type屬性來(lái)區(qū)分。SetPropertyValue是圖形單元類的函數(shù),如果元件已經(jīng)有了MyProp這個(gè)屬性,就修改這個(gè)屬性的值。GetPropertyValue函數(shù)可以返回一個(gè)屬性的值。 |
|
|
來(lái)自: Kenshin0_0 > 《待分類》