全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2746
推到 Plurk!
推到 Facebook!

HTML與ActiveForm間的參數傳遞

尚未結案
antony
一般會員


發表:7
回覆:8
積分:3
註冊:2002-07-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-06 14:27:46 IP:211.20.xxx.xxx 未訂閱
我利用ActiveForm撰寫了一個OCX檔,然後利用下列方式在HTML中 設定Active Form的Color屬性,讓User讀取網頁時出現不同的色彩 ,如果我想自己加上一個TEST的屬性,來作其他參數傳遞不知是否可 行? 請問是否有人這樣使用過.     classid="clsid:FC5F3xxx-2xxx-4xx4-Bxxx-3xxxxx9xxxxx"  codebase="http://www.xxx.xxx.tw/AAAA.cab#version=1,0,0,54"           width=380           height=298    param name="Color" value="129" param name="TEST"  value="參數傳遞" <=自行編輯的TEST屬性,用來傳遞資料     發表人 -
mi86018
一般會員


發表:20
回覆:39
積分:21
註冊:2003-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-02 14:29:07 IP:61.222.xxx.xxx 未訂閱
雖然這個問題已經過了一年多...但是剛好知道解答...就寫出來囉... 希望對有需要的人有幫助!    寫好的Activex ocx 在HTML引用的程式碼如下:  
 <OBJECT  "
classid="clsid:4BBF9074-8799-41D9-B4E8-BF93C4372E6B"
codebase="./PrintBarcodeProj1.inf"
width=117
height=47
align=center
hspace=0
vspace=0
><font color=red>">
</OBJECT></font>
紅色這行..就是要從Html要傳入ocx的參數。 而在Delphi中的ActiveX Form中點選 View -> Type Library 然後點選有個像紅色棒棒糖的Interface然後點滑鼠右鍵,New一個新的property,如圖一。 圖一 幫新的property去個名字,及資料型態,此property即為你要從Html傳進來的參數。取好名字之後Delphi會自動將Get和Put兩個Property設為同一名字,如下圖二。 圖二 新增完之後記得按下Type Library中裡那一排工具列裡面的Refresh。按下之後,在ActiveX form的程式碼就會多出兩個函式,如下:
function Get_BarcodeStr: WideString; safecall;
procedure Set_BarcodeStr(const Value: WideString); safecall;
 
在這兩個函式裡面,要加上下面的程式碼,當然也可以加入一些你自己需要的程式。
function TActiveXForm1.Get_BarcodeStr: WideString;
begin
  Result := WideString(BarcodeStr);
end;
        
procedure TActiveXForm1.Set_BarcodeStr(const Value: WideString);
begin
  BarcodeStr := Value;
end;
 
之後,就可以在你自己寫的其他函式裡面用的這個從Html傳進來的參數了,用法如下: 例如我在Timer裡面用道:
procedure TActiveXForm1.Timer1Timer(Sender: TObject);
var str:String;
begin
  Timer1.Enabled:=False;      str := get_BarcodeStr;      if (length(str) = 0) then
    exit
  else
    showmessage(str);
end;
 
將這個form包成ocx,Deploy之後,在Html語法記得加上文章最上面的那行
">
這樣這個網頁就能將參數傳進這個ocx了!! 有不懂的再問我喔~ 我是頭號「問題」份子...
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-11 22:00:23 IP:61.56.xxx.xxx 未訂閱
引言: 雖然這個問題已經過了一年多...但是剛好知道解答...就寫出來囉... 希望對有需要的人有幫助! ...
謝謝你提供如此詳盡的說明。 不過我試了一下,但Compile時出現錯誤... Undeclared identifier: 'BarCodeStr' 是不是有所遺漏?還是需要做什麼樣的設定?
mi86018
一般會員


發表:20
回覆:39
積分:21
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-12 10:24:54 IP:61.222.xxx.xxx 未訂閱
引言: 謝謝你提供如此詳盡的說明。 不過我試了一下,但Compile時出現錯誤... Undeclared identifier: 'BarCodeStr' 是不是有所遺漏?還是需要做什麼樣的設定?
不好意思,沒有說清楚。 還要在多宣告一個變數,例如我宣告在Private中:
type
  TActiveFormX = class(TActiveForm, IActiveFormX)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    BarCodeStr:WideString;
    { Private declarations }
    FEvents: IActiveFormXEvents;
    procedure ActivateEvent(Sender: TObject);
    procedure ClickEvent(Sender: TObject);
    procedure CreateEvent(Sender: TObject);
 
這樣Complie就可以了... 我是頭號「問題」份子...
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-12 14:14:15 IP:211.72.xxx.xxx 未訂閱
Hi,mi86018: 我改在ActiveFormCreate中寫: str := get_BarcodeStr; showmessage(str); 無論傳什麼都是空白,我是在想:當呼叫get_BarcodeStr這個function時 BarcodeStr這個private變數, 不是空白嗎, 在何時會給值? 另外, 我不知道在IE這樣輸入是否正確: http://xxx.xxx.xxx/index.html?BarcodeStr=1234
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-12 15:06:20 IP:211.72.xxx.xxx 未訂閱
Hi, 我改在ActiveFormCreate中寫: str := get_BarcodeStr; showmessage(str); 無論傳什麼都是空白,我是在想:當呼叫get_BarcodeStr這個function時 BarcodeStr這個private變數, 不是空白嗎, 在何時會給值? 另外, 我不知道在IE這樣輸入是否正確: http://xxx.xxx.xxx/index.html?BarcodeStr=1234 發表人 - star 於 2004/02/12 15:09:06
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-12 17:21:06 IP:202.39.xxx.xxx 未訂閱
插個花,  對照 %=sendstr% 這一句 您在網頁中有 Request sendstr 這個變數嗎?    --- 每個人都是一本書. --<-<-<@ 發表人 - hagar 於 2004/02/12 17:28:23
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-13 13:31:34 IP:211.72.xxx.xxx 未訂閱
引言: 插個花, 對照 %=sendstr% 這一句 您在網頁中有 Request sendstr 這個變數嗎? --- 每個人都是一本書. --<-<-<@ 發表人 - hagar 於 2004/02/12 17:28:23
網頁中我是照這樣寫的 〈param name="BarcodeStr" value="〈%=sendstr%〉"〉 您說的要 Request 變數, 是什麼意思? 不好意思, 網頁方面我實在太爛了. 還請不吝指教! %=sendstr% -->是否須要透過JavaScript將值傳給後端才行? 發表人 - star 於 2004/02/13 13:36:22 發表人 - star 於 2004/02/13 16:15:40
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-13 17:00:03 IP:202.39.xxx.xxx 未訂閱
試試 IE 的網址輸入改這樣: http://xxx.xxx.xxx/index.html?sendstr=1234 然後, .html 大概像這樣 <html> <% sendstr = Request("sendStr") // 這行是把 IE 網址輸入中所傳來的 sendstr 的值指定給 sendstr 變數 %> ... <OBJECT ...> ... <param name="BarcodeStr" value="<%=sendstr%>"> </OBJECT> --- 每個人都是一本書. --<-<-<@
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-13 17:31:01 IP:211.72.xxx.xxx 未訂閱
不好意思, 我的問題多, 另闢主題好了.
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-04-26 13:52:08 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-04-27 12:50:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!