delphi7 開發ActiveX的學習備忘錄

2021-06-28 21:12:10 字數 3186 閱讀 8240

關於delphi7 activex的學習備忘

步驟:1、先建立activex工程檔案;

2、註冊activex檔案(ocx檔案) ;

3、編寫相應呼叫activex檔案(.ocx檔案)的html檔案.

具體操作流程如下:

步驟1:

a、選擇file->new->other ,activex頁面,選擇activex form ;

b、填寫new activex name:,其他的不用做變動(不好意思,我也不知道其他的什麼意思);

c、成功建立activex form,儲存工程,三個檔案 (aaimpl1.pas、aaproj1.dpr加入activex name為aa);

d、aaproj1_tlb、aaproj1、aaimpl1;

e、增加介面(兩種方法):

1、選中aaimpl1單元,即選中activex form,在delphi的edit選單中選擇add to inte***ce...;  

1> 在add to inte***ce 視窗中加入介面func:function func(x1,x2 :integer) : integer ;  

2>最後ok就可以,delphi會自動幫你檢查語法,如果語法或者引數型別或者返回值型別不對,delphi開發環境會自動給出提示。  

3>注意:該介面函式有兩個引數 x1、x2,為integer型 ,返回值也為integer;  

4>引數和返回值型別說明:integer --long;string為bstr或者widestring ;

2、選中aaimpl1單元,即選中activex form, 在delphi的view選單中選擇type library;  

1> 在aaproj1.tlb 視窗中,在左側列表中選擇iaa,即選中iaa介面,右鍵->new->method或者在在工具欄中選擇new method   ,接著給方法命名test;  

2>選中test,在選擇視窗右邊的parameters頁面,對該方法進行引數和返回值的進行增加,return type不需要改變;  

3>比如test的返回值為string,有乙個string型的引數,則在parameters中增加兩個變數,具體如下 

中文說明 

name 

type 

modifier  

引數: 

svar 

bstr 

[in]  //[in]表示輸入引數  

返回值: 

sret 

bstr* 

[out,retvar] //表示輸出結果,type一定要為指標型別,否則出錯,即一定要帶*

則aaimpl1中產生:  

function taa.test(const svar: widestring): widestring;  

begin  

//編寫函式體  

result := svar ; //此句為自己編寫  

end;  

4>引數和返回值型別說明:integer --long;string為bstr或者widestring ;

f、增加屬性property:同樣選中aaimpl1單元,即選中activex form, 在delphi的view選單中選擇type library;  

在左側列表中選擇iaa,即選中iaa介面,右鍵->new->property或者在在工具欄中選擇new property  ,接著給屬性命名為mystr,  

在parameters中修改type為bstr;  

function taa.get_mystr: widestring;  

begin  

//編寫函式體  

end;

procedure taa.set_mystr(value: widestring);  

begin  //編寫過程體  

end; 

以上為搭建框架,接下來在activex form上增加乙個tbutton(btn_ax)和乙個tedit(edt_ax)控制項

g、回到aaimpl1頁面**視窗中,  

function taa.get_mystr: widestring;//得到 mystr  

begin  

//編寫函式體  

result := self.edt_ax.text ;  

end;

procedure taa.set_mystr(value: widestring);//設定mystr  

begin  //編寫過程體  

self.edt_ax.text := value ;  

end;  

procedure taa.btn_axclick(sender: tobject);  

begin  

self.clickevent(self);

end; 

activex form 編輯完畢,project->builder all projects. //編譯工程,生成aaproj1.ocx檔案。

步驟2:註冊activex檔案(ocx檔案) 兩種方法註冊activex檔案:

1、在delphi開發環境中,run-> register activex server //註冊ocx控制項。

2、開始->執行->regsvr32  "ocx檔案所在目錄/aaproj1.ocx".

步驟3:編寫相應呼叫activex檔案(.ocx檔案)的html檔案. 注:如果在delphi 7中可能會麻煩一點,至少我學習時是麻煩啦;方法:

1>project->web deployment options(web部署選項)->project ;

2>target dir(full path of the deployed ocx):選擇或填寫ocx的完整路徑目錄;   target url(virtual path of the deployed ocx):填寫 ./;   html dir(full path of the deployed html file):選擇或填寫html檔案的完整路徑目錄;   其他選項預設。   注:如果web deployment options為不可用狀態,則在file->new->other->activex->activex form接著刪除掉這個activex form,此時web deployment options為可用狀態啦,他娘的,這種bug 也有人能解決,真人才;

3>project->web deploy ;

至此結束;

源自:

Delphi7遠端除錯

自己的開發機器稱為主機,執行程式的機器稱為目標機 一 在主機編譯執行程式 1 project options linker中的exe and dll options選項組中的include remote debug symbols打上勾,這樣就可以生成rsm為副檔名的檔案,該檔名稱於你的專案同名。2...

Delphi7 動態陣列

初學delphi,感覺.這感覺就是寫 太費勁了,已經習慣了c 那種信手拈來,不能說pascal不適應只能說還是費勁,可能是d7太老了,也可能是我還沒有上道兒,就這麼著吧,下面簡單的寫倆函式作為參考,修改修改可以當c 中的list 用arr array of string procedure add ...

Delphi7 視窗停靠效果

實現目的 實現 ainform 中對dockform 的停靠,相當於 中的工具欄停靠。結果先讓大家看看 靠!看不到!說明 在開始停靠的時候我們先了解一下下停靠在 delphi 在delphi7 中原來就有對 form 等有依靠功能,分別是以下屬性 屬性值 說明drawmode dmautomatic...