VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

Active Document相互操作性和網際網路(轉貼)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期三 四月 30, 2003 4:16 pm    文章主題: Active Document相互操作性和網際網路(轉貼) 引言回覆

第三十一章︰相互操作性和網際網路
Microsoft Visual FoxPro 6.0 現在支援 OLE 拖放,您可以在 Visual FoxPro 和其他應用程式之間,以及在 Visual FoxPro 應用程式內部移動資料。

使用 Visual FoxPro 6.0 可以很容易地建立與網際網路一起使用的應用程式,以及與其他以 Windows 為基礎之應用程式 (如 Microsoft Excel 和 Microsoft Visual Basic) 一起使用的應用程式。使用 Visual FoxPro 6.0 可以建立由 Active Document 宿主程式 (如網際網路瀏覽工具) 所包容的 Active Document。

Visual FoxPro 6.0 的功能改進了自動化伺服應用程式,使得與網際網路、Microsoft Transaction Server 和 Active Desktop 的搭配使用更有效率。

本章的主要內容︰

OLE 拖放


Active Document


自動化伺服應用程式的改進
OLE 拖放
Visual FoxPro 現在支援 OLE 拖放,使用這種功能強大且實用的工具,可以在其他支援 OLE 拖放的應用程式之間移動資料 (例如 Visual FoxPro、Visual Basic、Windows [檔案總管]、Microsoft Word 和 Excel 等等)。在分送的 Visual FoxPro 應用程式中,可以在應用程式的控制項之間,或在控制項與其他支援 OLE 拖放的 Window 應用程式之間移動資料。

請注意,前幾版的 Visual FoxPro 支援程式設計的控制項拖放功能,可讓您在表單上移動控制項。Visual FoxPro 6.0 仍然支援這種形式的拖放。不過,如果選擇在應用程式中執行拖放支援,就只能使用程式設計的控制項拖放,或者 OLE 拖放,但不可混合使用這兩種拖放支援。

深入瞭解一些 OLE 拖放應用程式的基本知識,可以充分利用其功能。

拖放資料
使用滑鼠可以在應用程式和控制項之間拖放資料。例如,可以在 Windows [檔案總管]中選擇一組檔案,然後在拖曳這些檔案的同時按住滑鼠按鍵,接著在 Visual FoxPro[專案管理員]上鬆開滑鼠按鍵並置放這些檔案,或者可以在 Word 文件中選取一些文字,並將這些文字置放到 Visual FoxPro 表單的一個文字輸入方塊中。在 OLE 拖放操作程序中,變更滑鼠指標以表明正在進行 OLE 拖放操作。

拖曳來源
從其中移動資料的應用程式或控制項稱為拖曳來源。
拖曳來源的屬性、事件和方法程序
下表列出了 OLE 拖曳來源可使用的屬性、事件和方法程序。

屬性、事件或方法程序 描述
OLECompleteDrag 事件 在資料置放到置放目標上或取消 OLE 拖放操作時發生。
OLEDrag 方法程序 啟動一次 OLE 拖放操作。
OLEDragPicture 屬性 指定在 OLE 拖放操作程序中,在滑鼠指標下顯示的圖片。可以指定 .bmp、.dib、.jpg、.gif、.ani、.cur 和 .ico 等圖片檔案類型。
OLEDragMode 屬性 指定拖曳來源管理 OLE 拖曳操作的方式。
OLEGiveFeedBack 事件 在每次 OLEDragOver 事件之後發生。允許拖曳來源以指定 OLE 拖放操作和視覺化回饋的類型。
OLESetData 事件 在置放目標呼叫 GetData 方法程序,而 OLE 拖放 DataObject 中沒有指定格式的資料時發生。
OLEStartDrag 事件 在呼叫 OLEDrag 方法程序時發生。


置放目標
將資料移動到其中的應用程式或控制項稱為置放目標。

置放目標的屬性和事件
下表列出了 OLE 置放目標可使用的屬性、事件和方法程序。

屬性或事件 描述
OLEDragDrop 事件 在資料置放到置放目標,而置放目標的 OLEDropMode 屬性設定為 1 – 啟用 時發生。
OLEDragOver 事件 將資料拖曳到置放目標上,而置放目標的 OLEDropMode 屬性設定為 1 –啟用 時發生。
OLEDropEffects 屬性 指定 OLE 置放目標支援的置放操作類型。
OLEDropHasData 屬性 指定管理置放操作的方式。
OLEDropMode 屬性 指定置放目標管理 OLE 置放操作的方式。


移動資料
使用預設滑鼠 (左) 鍵執行拖放操作來移動資料,請先在拖曳來源中選取需要移動的資料。選定資料後,將滑鼠指標移動到置放目標之上的同時按住滑鼠按鍵,然後在置放目標上鬆開滑鼠按鍵以置放資料。在 OLE 拖放操作程序中,變更滑鼠指標以表明正在進行 OLE 拖放操作。

您也可以在拖曳來源的資料上按一下非預設的滑鼠 (右) 鍵,並將資料拖曳到某個置放目標上。根據不同的置放目標,在置放目標上置放資料時會顯示一個文意相關功能表,該相關功能表包含一組選項,用來選擇置放目標處理資料的方式。

複製資料
您也可以在拖曳來源中複製資料,並將資料貼入置放目標中。在拖曳來源中選定資料上按下滑鼠的同時按住 Ctrl 鍵。當拖曳滑鼠以表明正在進行複製操作時,滑鼠游標會顯示一個加號 (+)。

置放目標和拖曳來源不支援 OLE 拖放
只有當拖曳來源和置放目標都支援 OLE 拖放時,才能從拖曳來源移動或複製資料。請注意,置放目標雖可以支援 OLE 拖放,但不一定接受試圖置放的資料。例如,您所移動或複製的資料可能使用置放目標不支援的格式。在拖放操作程序中,滑鼠游標變成[不允許置放]的符號 (一個帶水平線的圈),以表明滑鼠正位於應用程式或控制項中不能置放資料的區域上。

取消操作
在操作程序中按 ESC 鍵可取消 OLE 拖放操作。

設計階段的 OLE 拖放支援
Visual FoxPro 支援設計階段的 OLE 拖放,可讓使用者較前幾版更快速地開發應用程式。使用 OLE 拖放可以很容易地將檔案從 Windows[檔案總管]置放到[專案管理員]和 Visual FoxPro 設計工具中。同樣,也可以很容易地將文字從其他應用程式移動或複製到[命令]視窗、Visual FoxPro 文字編輯器以及[屬性]視窗中。

下表列出了支援 OLE 拖放的 Visual FoxPro設計階段功能,以及對這種支援的描述。

介面項目 描述
[命令]視窗 檔案的置放目標,文字的拖曳來源和置放目標。
如果將在 Visual FoxPro 中建立的檔案置放到[命令]視窗,將使用相應的 Visual FoxPro 命令開啟該檔案。例如,如果將一個資料庫置放到[命令]視窗,Visual FoxPro 將發出 OPEN DATABASE 和 MODIFY DATABASE 命令,來開啟該檔案以便進行修改。如果將某個資料表格置放到[命令]視窗中,將使用 USE ... AGAIN 和 BROWSE 命令來開啟該資料表格。如果 SET EXCLUSIVE 為 ON,該資料表格即以專用的模式開啟。如果 SET EXCLUSIVE 為 OFF,該資料表格即以共用的模式開啟。

使用相應的 MODIFY 命令開啟其他 Visual FoxPro 檔案 — 使用 MODIFY FORM 命令開啟表單,使用 MODIFY QUERY 命令開啟查詢,使用 MODIFY FILE 命令開啟文字和標題 (.H) 檔案,以此類推。

如果將一個在其他應用程式中建立的檔案置放到[命令]視窗,將使用相關的應用程式開啟該檔案。例如,將一個 Microsoft Excel 試算表置放到[命令]視窗中,將啟動 Excel 並開啟該工作表。

專案管理員 檔案的置放目標。
根據不同的檔案副檔名,將檔案加入到相應的[專案管理員]分類中。如果將一個檔案置放到[專案管理員]中,而 Visual FoxPro 不能識別該檔案的副檔名,則該檔案將加入到[其他]分類中。

如果將資料庫中的某個資料表格置放到[專案管理員]中,該資料庫將加入到[資料]項目的[資料庫]分類中,並且標示為[排除]。如果將某個獨立資料表格置放到[專案管理員]中,該資料表格將加入到[資料]項目的[獨立資料表格]分類中,並且標示為[排除]。如果將某個資料庫置放到[專案管理員]中,該資料庫將加入到[資料]項目的[資料庫]分類中,並且標示為[排除]。

雖然 OLE 拖放功能可以容易地將檔案加入[專案管理員]中,但請記住在建立專案時,[專案管理員]會自動將任何相關的檔案加入專案中。例如,如果加入到專案中的某個程式需要執行另一個程式,在建立專案時,系統會自動將第二個程式加入專案中,因此沒有必要手動將第二個程式加入專案中。

文字編輯器 文字的拖曳來源和置放目標。
文字編輯器包括使用 MODIFY COMMAND、MODIFY FILE 和 MODIFY MEMO、[命令]視窗開啟的編輯視窗,表單、類別、功能表和[資料環境設計工具]中的程式片段編輯視窗,以及[資料庫設計工具]中的儲存式程序編輯器。

除錯工具 文字的拖曳來源和置放目標。
[監視]視窗的文字輸入方塊和[名稱]清單是文字的拖曳來源和置放目標。[追蹤]視窗和[除錯輸出]視窗是文字的拖曳來源。

資料庫設計工具 檔案的置放目標。
在[資料庫設計工具]上置放一資料表格,可將該資料表格加入到目前資料庫中。

類別設計工具 文字和檔案的置放目標。
按預設值,在[類別設計工具]中的一個容器物件上置放文字,可將一內含文字之標籤建立為其 Caption 的屬性值。在[選項]對話方塊的[欄位對應]標籤中,可以更改在[表單設計工具]上置放文字時建立的預設控制項。

如果在非容器控制項中置放文字,例如:核取方塊 (CheckBox)、指令按鈕 (CommandButton)、標題 (Header)、標籤 (Label) 或選項按鈕 (OptionButton) 控制項,則該控制項的 Caption 屬性將設定為該文字。

在[類別設計工具]中置放一個圖形檔案 (.ani、.bmp、.cur、.gif、.ico 或 .jpg),可建立 Picture 屬性值設定為該圖形檔案名稱的圖像控制項。

資料環境設計工具 檔案的置放目標。
將資料表格置放到[資料環境設計工具]中,會將該資料表格加入到資料環境中。將資料庫置放到[資料環境設計工具]中,將顯示[加入資料表格或資料集]對話方塊,允許您將資料表格或資料集加入資料環境中。

查詢設計工具 檔案的置放目標。
將資料表格置放到[查詢設計工具]中,會將該資料表格加入到查詢中。將資料庫置放到[查詢設計工具]中,會顯示[加入資料表格或資料集]對話方塊,允許您將資料表格或資料集加入查詢中。

資料集設計工具 檔案的置放目標。
將資料表格置放到[資料集設計工具]中,會將該資料表格加入到資料集中。將資料庫置放到[資料集設計工具]中,會顯示[加入資料表格或資料集]對話方塊,允許您將資料表格或資料集加入資料集中。

[屬性]視窗 文字的置放目標。
選定設計階段屬性後,可以將文字拖放到顯現在[屬性]視窗頂端的文字輸入方塊中。

元件陳列庫 檔案的拖曳來源和置放目標。
您可以從[元件陳列庫]中拖曳物件,並將其置放到[表單設計工具]中。也可以從[元件陳列庫]中拖曳檔案,並將其置放到[專案管理員]中。

可以將檔案置放到[元件陳列庫]中。



執行階段的 OLE 拖放支援
OLE 拖放支援可用於 Visual FoxPro 控制項和文字編輯器的執行階段。控制項和文字編輯器在執行階段交互地支援 OLE 拖放,控制項並提供執行階段的程式設計支援。DataObject 物件為控制項提供了程式設計的 OLE 拖放支援。

Visual FoxPro 控制項有兩種 OLE 拖放模式︰固有模式和手動模式。在固有模式中,Visual FoxPro 按照固有模式處理 OLE 拖放操作。在手動模式中,可以透過程式方式來處理 OLE 拖放操作。發生的事件由 OLE 拖放模式決定。詳細內容,請參閱<固有和手動 OLE 拖放模式>一節。

前幾版 Visual FoxPro 中的拖放
前幾版的 Visual FoxPro 支援控制項的程式設計拖放,可讓您在表單上移動控制項。目前的版本仍然支援這種拖放形式。如果使用 OLEDragMode 和 OLEDropMode 屬性的預設設定,則既存的應用程式可以不作任何變更而像以前一樣執行。

DataObject 物件
DataObject 物件是一個資料的容器,該資料從 OLE 拖曳來源轉移到 OLE 置放目標,而且該物件只在 OLE 拖放操作程序中存在。不能透過程式方式來建立 DataObject 物件,當 OLE 拖放操作完成後,對該物件的參考將變成無效。在 OLEStartDrag、OLEDragOver、OLEDragDrop 和 OLESetData 事件中,DataObject 作為 oDataObject 參數進行傳遞。

DataObject 可以儲存多組資料,每組資料可以有不同的格式。可使用 GetFormat 方法程序確定 DataObject 中既存的特定格式。有關 DataObject 所支援的格式清單,請參閱 GetFormat 方法程序。

DataObject 物件的方法程序
DataObject 物件具有可透過程式方式來處理拖放資料的方法程序。下表列出了 DataObject 執行階段可使用的方法程序。

方法程序 描述
ClearData 清除 OLE 拖放的 DataObject 物件中所有的資料和資料格式。
GetData 從 OLE 拖放的 DataObject 物件中取回資料。
GetFormat 確定 OLE 拖放的 DataObject 中資料的指定格式是否可使用。
SetData 將資料及其格式放入 OLE 拖放的 DataObject 中。
SetFormat 僅將資料格式 (沒有資料) 放入 OLE 拖放的 DataObject 中。


固有和手動 OLE 拖放模式
Visual FoxPro 支援控制項的兩種 OLE 拖放模式︰固有模式和手動模式。在固有模式中,Visual FoxPro 處理 OLE 拖放操作。而在手動模式中,可透過程式設計來處理 OLE 拖放操作。

固有的 OLE 拖放模式
可以在應用程式中使用固有的 OLE 拖放模式,以提供標準的 OLE 拖放支援,而無需另外撰寫程式。

若要對控制項進行固有的 OLE 拖放支援

將控制項的 OLEDragMode 屬性設定為 1 – 自動,則該控制項可以作為 OLE 拖曳來源。


將控制項的 OLEDropMode 屬性設定為 1 – 啟用,則該控制項可以作為 OLE 置放目標。
對於固有的 OLE 拖放操作,Visual FoxPro 會確定置放目標是否支援將置放在上面的資料格式;如果置放目標支援該格式,則可以置放,否則不允許置放。

下表列出了在固有模式下可以作為拖曳來源的 Visual FoxPro控制項及所支援的資料格式。請注意,CF_TEXT 代表文字,例如在文字輸入方塊中輸入的文字,而 CFSTR_VFPSOURCEOBJECT 代表對 Visual FoxPro 控制項或物件的物件類型參考。對於下列支援 CF_TEXT 資料格式的控制項,可以從控制項的文字部分拖曳文字。

拖曳來源的資料格式

控制項 資料格式 (在 Foxpro.h 檔案中定義)
容器 (Container)、圖像 (Image)、線條 (Line)、分頁框 (PageFrame) 和幾何圖形 (Shape) CFSTR_VFPSOURCEOBJECT
指令按鈕 (CommandButton) 和標籤 (Label) CFSTR_VFPSOURCEOBJECT 和 CF_TEXT
核取方塊 (CheckBox)、下拉式列示方塊 (ComboBox)、文書編輯方塊 (EditBox)、列示方塊 (ListBox)、數值微調器 (Spinner) 和文字輸入方塊 (TextBox) CFSTR_VFPSOURCEOBJECT、CF_TEXT 和 CFSTR_OLEVARIANT


下表列出了在固有模式中可以作為置放目標的 Visual FoxPro 控制項及所支援的資料格式。對於下表中列出的控制項,可以在控制項的文字部分置放文字。文字將在插入點中插入。

置放目標的資料格式

控制項 資料格式
文書編輯方塊 (EditBox) 和下拉式列示方塊 (ComboBox)(當下拉式列示方塊 (ComboBox) 的 Style 屬性設定為 0 可輸入的下拉式列示方塊 (Dropdown Combo) CF_TEXT
數值微調器 (Spinner) 和文字輸入方塊 (TestBox) CFSTR_OLEVARIANT


手動的 OLE 拖放模式
有時可能需要控制置放目標上所能置放的資料類型,或者為拖放操作提供附加功能。例如,將資料轉換成置放目標所支援的格式,或者顯示一個對話方塊,詢問使用者是否確定將資料置放到置放目標上。在這些情況下,需要覆蓋固有的 OLE 拖放支援,以便透過拖放操作提供更多的控制項。

為執行對控制項的手動 OLE 拖放支援,需要編寫自己的事件或方法程序程式碼,來覆蓋所要控制的拖放事件或方法程序。在事件或方法程序程式碼中含入 NODEFAULT 關鍵字,可以覆蓋固有的 Visual FoxPro 拖放運作方式。

如果將 OLEDragMode 設定為 0 (預設值),而不另外編寫 OLE 拖放程式碼時,將提供回溯相容性 (無 OLE 拖曳支援) 給既存的應用程式。

Active Document
使用 Visual FoxPro 6.0 可以建立 Active Document,利用 Active Document 則可以在 Web 瀏覽工具宿主程式,如 Microsoft Internet Explorer 中檢視非 HTML 文件。因此,應用 Active Document 技術可以在一個 Active Document 宿主程式中檢視多種類型的文件。

Active Document 是一種特別類型的 OLE 可嵌入文件,顯示在 Active Document 宿主程式的整個客戶端區域中,並且與宿主程式合併功能表。Active Document 具有完整的結構,而且固定就地啟動。

下面是 Active Document 提供的一些功能︰

Active document 固定就地啟動。


Active Document 功能表及工具列命令可以傳遞到 Active Document 宿主程式。


使用 Internet Explorer 檢視時,Active Document 可以提供與其他網頁的無縫整合。


循著從純 Visual FoxPro 客戶端應用程式到使用以 HTML 為基礎之客戶端介面的 Active Platform 應用程式的移動路徑,Active Document 向前邁出了一大步。
建立 Active Document
建立 Visual FoxPro Active Document 很容易。與其他任何 Visual FoxPro 應用程式一樣,Visual FoxPro Active Document 可以處理資料、執行表單、報表和標籤、起始化類別,以及執行程式碼。

Visual FoxPro Active Document 是從 Visual FoxPro 專案中建立的應用程式 (.app)。使用早期版本的 Visual FoxPro 可以建立應用程式,所以使用者對於如何建立應用程式應該很熟悉。有關建立應用程式的詳細內容,請參閱《程式設計指南》的第十三章<編譯連結應用程式>。

任何應用程式都可以在 Internet Explorer 中執行。但是,只有下述以 ActiveDoc 基本類別為基礎的應用程式,才支援那些提供與 Active Document 宿主程式進行通訊的屬性、事件和方法程序。

ActiveDoc 基本類別
Visual FoxPro Active Document 與其他應用程式 (.app) 略有不同。最明顯的差別是 Active Document 的“主程式檔”必須設定為一個以 ActiveDoc 基本類別為基礎的類別,而其他類別的應用程式則需要一個程式或表單作為主程式檔。

使用[類別設計工具]建立以 ActiveDoc 基本類別為基礎的類別,並且將其作為所有 Visual FoxPro Active Document 的基礎。ActiveDoc 基本類別為 Active Document 提供屬性、事件和方法程序,並且提供與 Active Document 宿主程式進行通訊的能力。例如,當 Active Document 由其宿主程式釋放時,將發生 ContainerRelease 事件。可以在 ContainerRelease 事件中加入程式碼,以便在釋放 Active Document 之前關閉檔案、完成異動交易,並進行其他的清理工作。

若要將主程式檔設定為一個以 ActiveDoc 基本類別為基礎的類別

在專案中加入視覺化類別定義函數庫 (.vcx),該類別定義函數庫包含以 ActiveDoc 基本類別為基礎的類別。


按一下函數庫名稱左邊的加號 (+) 方塊,或是在該函數庫上按一下滑鼠右鍵,然後從快顯功能表中選擇[全部展開]命令,來展開該視覺化類別定義函數庫 (.vcx) 階層架構。。


選取以 ActiveDoc 基本類別為基礎的類別。在該類別上按一下滑鼠右鍵,然後從快顯功能表中選擇[設定主程式]。
ActiveDoc 物件
當 Visual FoxPro Active Document 在 Internet Explorer 中執行時,將從 ActiveDoc 基本類別中建立 ActiveDoc 物件。該 ActiveDoc 物件會回應呼叫 ActiveDoc 基本類別的事件和方法程序。

ActiveDoc 物件屬性、事件和方法程序
下表列出了 ActiveDoc 物件支援的屬性、事件和方法程序。

屬性

BaseClass Caption Class
ClassLibrary Comment ContainerReleaseType
Name Parent ParentClass
Tag


事件

CommandTargetExec CommandTargetQuery ContainerRelease
Destroy Error HideDoc
Init Run ShowDoc


方法程序

AddProperty ReadExpression ReadMethod
ResetToDefault SaveAsClass WriteExpression


Active Document 事件序列
在 Internet Explorer 中開啟 Active Document 應用程式時,Active Document 將執行並產生該 Active Document 的 Init 事件,然後產生 Active Document 的 ShowDoc 事件。如果 Internet Explorer 成功地包容 Active Document,將產生 Active Document 的 Run 事件。一般情況下,Active Document 程式碼應該放在這個事件中。通常 Run 事件中包含用來執行功能表程式碼的程式碼,執行應用程式中的主表單,並包含 READ EVENTS 以啟動事件處理,如標準的 Visual FoxPro 應用程式一樣。

可以將起始設定程式碼放在 Active Document 的 Init 事件中,但如果該程式碼需要很長的時間來執行,Active Document 容器可能會產生逾時錯誤。因此,如果將起始設定程式碼放在 Init 事件中,則程式碼不能要求使用者交互作用或者建立使用者介面。

如果從 Active Document 導覽,將產生 HideDoc 事件,當導覽回 Active Document 時,將產生 ShowDoc 事件。

如果在 Active Document 已被包容時關閉 Internet Explorer,將產生 HideDoc 事件,然後產生 ContainerRelease 事件。如果 Active Document 超出 Internet Explorer 3.0 的快取裝置,也將產生 ContainerRelease 事件。

產生 ContainerRelease 事件時,該事件中的程式碼將執行下列動作︰

關閉檔案並自我清除,然後發出 QUIT 命令關閉 Active Document。


將 ContainerReleaseType 屬性設定為 0 (預設值),以便在 Visual FoxPro 執行時期開啟 Active Document。Active Document 可以繼續在執行階段的 Visual FoxPro 主視窗中執行。
附註 在 Internet Explorer 4.0 將要關閉或者從 Active Document 導覽時,將產生 CommandTargetExec 事件。在這種情況下,CommandTargetExec 事件的 nCommandID 參數會設定為 37,而將 eArgOut 參數設定為 false (.F.),以防止 Internet Explorer 關閉 Active Document。Internet Explorer 3.0 不支援 CommandTargetExec 事件。

新的 Active Document 函數
在 Visual FoxPro 中,加入了兩個新函數 GETHOST( ) 和 ISHOSTED( ),以提供有關 Active Document 宿主程式的資訊。GETHOST( ) 傳回 Active Document 宿主程式的物件參考;ISHOSTED( ) 則傳回一個邏輯值,指出 Active Document 是否被包容。

對表單物件的更改
Visual FoxPro Active Document 的使用者介面由其程式碼定義。通常情況下,Visual FoxPro 表單應顯示為初始的使用者介面。在 Visual FoxPro 中,加入了以下的表單屬性、事件和方法程序,可以使表單在 Active Document 適當地運作。

屬性
AlwaysOnBottom ContinuousScroll HscrollSmallChange
Scrollbars TitleBar ViewPortHeight
ViewPortLeft ViewPortTop ViewPortWidth
VScrollSmallChange

事件
Scrolled

方法程序
SetViewPort


Active Document 中的表單
Active Document 中的表單顯示在 Internet Explorer 提供的客戶端區域。如果需要讓表單完整地顯示在 Internet Explorer 的客戶端區域,可將表單的屬性設定為下列值︰

BorderStyle = 0 (無邊框)
TitleBar = 0 (關閉)
WindowState = 2 (最大化)

另外,如果 Internet Explorer 的客戶端區域比 Active Document 檢視區 (由包含表單上所有控制項的方塊決定範圍) 小,必須顯示捲動軸時,Scrollbars 屬性應該設定為下列值︰

ScrollBars = 3 (水平與垂直)

Active Document 中的功能表
在 Visual FoxPro Active Document 中執行功能表程式碼時,該功能表將按照特定功能表的合併驗證規則與 Internet Explorer 的功能表合併。Active Document功能表與 Internet Explorer 的功能表合併後,Active Document 功能表會顯現為固有的 Visual FoxPro 應用程式中的功能表一樣。

功能表列的位置
在 Visual FoxPro 6.0 和早期版本中,對 Visual FoxPro 表單中的 ActiveX 控制項進行 OLE 視覺化編輯時,可以指定功能表的功能表列位置的運作方式。在 Visual FoxPro 6.0 中,加強了這種功能表列的位置,以提供 Active Document 的功能表在 Internet Explorer 中出現的控制項。

在 Internet Explorer 中開啟 Active Document 時,它會共用 Internet Explorer 和功能表一起合併的功能表空間,即來自 Internet Explorer 的功能表與來自 Active Document 的功能表合併在一起。合併後的功能表分成六個組,每組由 Internet Explorer 或 Active Document 分別擁有,或者共同擁有。

群組 擁有者
檔案群組 Internet Explorer
編輯群組 Active Document
容器群組 Internet Explorer
物件群組 Active Document
視窗群組 Internet Explorer
說明群組 Active Document 或 Internet Explorer


說明功能表的合併
Active Document 與 Internet Explorer 共用其[說明]功能表。如果 Internet Explorer 有一個[說明]功能表,則 Active Document 可以將自己的[說明]功能表加入到 Internet Explorer 的[說明]功能表的尾端。

對於功能表位置的語言加強
已經加強了 DEFINE PAD NEGOTIATE 子句以指定如何產生 Active Document 中的功能表位置。新增的第二個選項 cObjectPosition 可以指定功能表標題在 Internet Explorer 功能表列中的位置。

詳細內容,請參閱《程式語言參考手冊》中的 DEFINE PAD。

功能表的位置和[功能表設計工具]
經過加強的[功能表列設計工具]的[提示選項]對話方塊,可以對在[功能表列設計工具]中建立的功能表和 Active Document 中包含的功能表指定功能表的位置。同時,加入了一個“物件”不可輸入的下拉示列示方塊,該不可輸入的下拉示列示方塊可以指定在 Internet Explorer 包容 Visual FoxPro Active Document 時功能表標題的位置。

功能表的位置資訊
功能表的位置資訊儲存在功能表 .mnx 檔案中的 Location 欄位中。下表列出了該欄位中的值,以及每個值對應的功能表的位置類型。有關 cContainerPosition 和 cObjectPosition 的詳細內容,請參閱 DEFINE PAD。

值 cContainerPosition cObjectPosition
0 None None
1 Left None
2 Middle None
3 Right None
4 None Left
5 Left Left
6 Middle Left
7 Right Left
8 None Middle
9 Left Middle
10 Middle Middle
11 Right Middle
12 None Right
13 Left Right
14 Middle Right
15 Right Right


請注意,在 Visual FoxPro 6.0 中,Location 欄位的大小由一位數增加到兩位數。這是在 Visual FoxPro 6.0 中對資料表格檔的結構所作的唯一變更,包括資料庫 (.dbc)、表單 (.scx)、標籤 (.lbx)、專案 (.pjx)、報表 (.frx) 和視覺化類別定義函數庫 (.vcx) 的資料表格。

CommandTargetExec 和 CommandTargetQuery 事件
使用 Active Document 的 CommandTargetExec 和 CommandTargetQuery 兩個事件可以管理 Active Document 中 Internet Explorer 功能表的選定範圍 (以及其他 Internet Explorer 事件)。當 Internet Explorer 通知 Active Document 即將執行一個命令 (包括功能表命令) 時,將產生 CommandTargetExec 事件。當 Internet Explorer 更其使用者介面時,將產生 CommandTargetQuery 事件。有關各事件的詳細內容,請參閱《程式語言參考手冊》中的<CommandTargetExec Event>和<CommandTargetQuery Event>。

執行 Active Document
執行 Visual FoxPro Active Document 時,需要同時執行 Vfp6.exe 和 Vfp6run.exe 或 Vfp6run.exe、Vfp6r.dll 和 Vfp6renu.dll (enu 表示英文版)。在已安裝 Internet Explorer 的電腦上,必須安裝和登錄這些檔案。安裝 Visual FoxPro 時,Vfp6.exe 會安裝在 Visual FoxPro 的目錄下,其餘檔案則安裝在 Windows 95 的 Windows\System 目錄或 Windows NT 的 WinNT\System32 目錄下。

透過[工具]功能表執行 Active Document
Visual FoxPro 的[工具]功能表包含[執行 Active Document]命令,可選擇該命令來顯示[執行 Active Document]對話方塊。在這個對話方塊中,可以指定執行 Active Document 的執行方式。下列選項可供使用︰

選項 描述
瀏覽器中 (預設值) 使用執行階段的 Visual FoxPro,在 Internet Explorer 中執行 Active Document。
獨立的 使用執行階段的 Visual FoxPro,將 Active Document 作為獨立的應用程式執行。
瀏覽器中 (除錯中) 使用可執行的 Visual FoxPro (Vfp6.exe),在 Internet Explorer 中執行 Active Document。除錯功能、[命令]視窗和 Visual FoxPro 開發環境的所有功能都可使用。
獨立的 (除錯中) 使用可執行的 Visual FoxPro (Vfp6.exe),將 Active Document 作為一個獨立的應用程式執行,並提供除錯功能、[命令]視窗和 Visual FoxPro 開發環境的所有功能。
選擇這個選項與在[命令]視窗中發出 DO <Active Doc Name>命令相同。



也可以透過在 Internet Explorer 的[開啟檔案]對話方塊中開啟 Active Document,或者從其他帶有該 Active Document 超連結的網頁導覽,以執行 Active Document。

Visual FoxPro 執行階段和 Active Document
在 Windows [檔案總管]中連按兩下 Active Document 的圖像,可從 Visual FoxPro 中執行該 Active Document,也可以從 Visual FoxPro 執行階段應用程式執行 Active Document。Visual FoxPro 執行階段包含兩個檔案︰Vfp6run.exe 和 Vfp6r.dll。這兩個檔案都必須加以安裝並且登錄才能執行 Active Document。Visual FoxPro 執行階段也可以用來執行其他 Visual FoxPro 可分送的檔案,如已編譯好的 Visual FoxPro 程式 (.fxp 檔案)。

登錄 Vfp6run.exe 之後,就可以用它來直接執行 Active Document (以及其他 Visual FoxPro 可分送的檔案)。

Vfp6run.exe 的語法

VFP6RUN [/embedding] [/regserver] [/unregserver] [/security]
[/s] [/version] [FileName]

引數

/embedding

將 Vfp6run.exe 載入為 active document 伺服器。在這種模式下,Vfp6run.exe 登錄成 COM 伺服器,能夠建立 Visual FoxPro Active Document 物件 ("Visual.FoxPro.Application.6")。沒有這個引數,Vfp6run.exe 就不能作為 COM 伺服器。

/regserver

登錄 Vfp6run.exe。

/unregserver

取消登錄 Vfp6run.exe。

/security

顯示[應用程式安全性設定]對話方塊,可以為 Active Document 和其他應用程式 (.app) 檔案指定安全性設定。詳細內容,請參閱下一節的<Active Document 安全性>。

/s

指定當 Vfp6run.exe 無法載入 Vfp6r.dll 執行階段元件而產生錯誤時,不顯示該錯誤訊息。

/version

顯示 Vfp6run.exe 和 Vfp6r.dll 的版本資訊。

FileName

指定要執行的 Visual FoxPro 檔案。

Vfp6run.exe 需要安裝和登錄執行階段支援的動態連結函數庫 Vfp6r.dll。若要登錄 Vfp6r.dll,請使用以下的執行階段名稱來執行 Regsvr32︰

Regsvr32 Vfp6r.dll

Active Document 安全性
使用 Visual FoxPro 執行階段 Vfp6run.exe 的 /security 選項,可以為 Active Document 和其他應用程式 (.app) 檔案設定安全性層級。執行 Vfp6run.exe /security 將顯示[應用程式安全性設定]對話方塊,在該對話方塊中可以為 Active Document 和其他 .app 檔案設定安全性層級。

在[應用程式安全性設定]對話方塊中可使用以下選項︰

Hosted
可以為在諸如 Internet Explorer 等 Active Document 容器中執行的 Active Document 或應用程式 (.app) 選擇這種應用程式模式設定來為其指定一個安全性層級。

非包容
可以為在 Window [檔案總管]中透過連按兩下圖像,或用 Visual FoxPro Vfp6run.exe 執行階段執行的 Active Document 或應用程式 (.app),選擇此應用程式模式設定,來為其指定一個安全性層級。

高 (最安全)
選擇這種設定可以防止 Active Document 或應用程式 (.app) 的執行。

中 (較安全)
選擇這種設定可以在執行 Active Document 或應用程式 (.app) 之前顯示一個警告訊息。對於非包容的 Active Document 和應用程式,[中]是預設設定。

低 (無保全)
選擇這種設定執行 Active Document 或應用程式 (.app) 時,不需顯示警告訊息。對於包容的 Active Document 和應用程式,[低]是預設設定。

重設
將目前選定的應用程式模式 (Hosted 或非包容) 回存為預設的安全性層級。

確定
儲存在對話方塊中選定的設定。

Internet Explorer 注意事項
為了提高效能,Internet Explorer 3.0 在記憶體中快取了最後拜訪過的四個網頁。這意味著,一個 Active Document 可能會超出 Internet Explorer 3.0 的快取裝置,導致 ContainerRelease 事件的發生。而 Internet Explorer 4.0 沒有對網頁進行快取,所以在導覽 Active Document 時,將立即產生 ContainerRelease 事件。

Active Document 範例
Visual FoxPro Solution 範例應用程式中包括一個名為[Create Active Document for Web]的範例,展示許多 Active Document 的功能。

若要執行 Solution 範例應用程式

在[命令]視窗中輸入以下命令︰
DO (HOME(2) + 'solution\solution')

– 或者 –

從[程式]功能表中,選擇[執行]。


選擇 Samples\Vfp98\Solution 檔案夾。


連按兩下 Solution.app。
若要執行[Create Active Document for Web]範例

啟動 Solution.app 之後,連按兩下[New features for Visual FoxPro 6.0]。


按一下[Create Active Document for web],然後按一下[Run Sample]按鈕。
使用[Create Active Document for web]範例可以開啟一個專案,其中包含在該專案中建立 Active Document 所需的所有檔案。專案開啟後,可以驗證 Actdoc 類別中的程式碼,以瞭解如何管理 Active Document 事件,以及如何執行表單。請注意,Actdoc 是以 ActiveDoc 基本類別為基礎的類別,為專案中的主程式檔。一個 Active Document 必須有一個以 ActiveDoc 基本類別為基礎的類別作為主程式檔。

同時也可以透過在[專案管理員]中選擇[建立],從專案中建立一個 Active Document。Active Document 建立之後,即可從[工具]功能表中選擇[執行 Active Document]來執行該 Active Document。

自動化伺服應用程式的改進
本節描述對 Visual FoxPro 6.0 自動化伺服應用程式所作的改進,並且討論 Visual FoxPro 自動化伺服應用程式如何與 Microsoft Transaction Server 和 Microsoft Visual Basic 等產品與技術一起運作。

使用 Visual FoxPro 可以建立自動化伺服應用程式。自動化伺服應用程式是一個元件應用程式,提供了其他透過自動化的應用程式來使用和重複使用的功能。例如,使用 Visual FoxPro 可以建立自動化伺服應用程式來顯示可重複使用的表單 (使用非作用中的 .exe),或將一個複雜常式包裝在一個簡單元件中,以供其他程式設計者使用。另外,還可以建立一個或多個處理企業級商務驗證規則的類別,使用商務驗證規則物件的客戶端應用程式會在方法程序呼叫中傳遞輸入參數,然後自動化伺服應用程式即可處理很多工作,如在傳回答覆之前,可以從各種來源取出或儲存資料並執行複雜的計算。

在 Visual FoxPro 中,可以建立一個外部處理或內部處理的自動化伺服應用程式。非作用中元件是一個在其自身程序中執行的可執行 (.exe) 檔案。因此,客戶端應用程式和非作用中伺服器之間的通訊稱為交叉處理通訊。作用中元件是一個動態連結函數庫 (.dll) 檔案,與呼叫該檔案的客戶端在相同的或在 Microsoft Transaction Server 程序中執行。

有關建立 Visual FoxPro 自動化伺服應用程式的詳細內容,請參閱《程式設計指南》第十六章的<建立自動化伺服應用程式>。

Visual FoxPro 6.0 自動化伺服應用程式的改進
下面各節描述 Visual FoxPro 6.0 自動化伺服應用程式新增和改進的功能。

套間式模型穿引
Visual FoxPro 自動化伺服應用程式現在支援套間式模型穿引。Microsoft Transaction Server 利用標示成套間式穿引的伺服器並提供更好的執行緒保護和可測量性。

每個套間式模型物件 (例如 Visual FoxPro 自動化伺服應用程式) 只能透過一個執行緒進入,建立該物件的執行緒 (例如 Microsoft Visual C++ 中的 CoCreateInstance)。不過,一個物件伺服器 (例如 Microsoft Transaction Server) 可以支援多個物件,每個物件可以透過不同的執行緒同時進入。物件伺服器擁有的公用資料必須加以保護,以避免執行緒衝突造成的破壞。物件伺服器會在名為 CoCreateInstance 的相同執行緒中建立一個套間式模型物件。從套間式執行緒中對該物件呼叫是不按順序進行的。

有關套間式模型穿引的詳細內容,請在 MSDN 函數庫中搜尋<Visual Basic 中的套間式模型穿引>。

使用者介面和作用中伺服器
新的套間式模型穿引支援需要沒有使用者介面的作用中 .dll 自動化伺服應用程式。在 Visual FoxPro 5.0 中,可以建立 (雖然不建議這樣做) 一個具有使用者介面 (例如表單) 的作用中 .dll 自動化伺服應用程式。但因為不支援表單事件,該表單只能用於顯示。而在 Visual FoxPro 6.0 中,試圖在作用中 .dll 自動化伺服應用程式中建立使用者介面將產生錯誤。

非作用中 .exe 自動化伺服應用程式可以有使用者介面。Visual FoxPro 6.0 加入了一個新的函數 SYS(2335),可以用來關閉從遠端配置而無需使用者干涉的非作用中 .exe 自動化伺服應用程式的模型事件。模型事件由使用者定義的模式表單、系統對話方塊、MESSAGEBOX( ) 函數和 WAIT 命令等建立。

早期 (vtable) 連結
Visual FoxPro 6.0 現在支援早期 (vtable) 連結和既存的 IDispatch 介面 (合稱為雙介面支援)。早期 (vtable) 連結對支援早期 (vtable) 連結的自動化伺服控制器 (如 Visual Basic 和 Microsoft Transaction Server) 的效能很有益處。

Visual FoxPro 執行階段 Vfp6r.dll
一個 Visual FoxPro 6.0 執行階段 Vfp6r.dll 不再為多種作用中的 .dll 自動化伺服應用程式提供服務。每個作用中 .dll 現使用執行階段 Vfp6r.dll 的獨立案例。下列驗證規則將決定作用中 .dll 如何使用執行階段 Vfp6r.dll︰

首先呼叫的作用中 .dll 可以專用模式使用執行階段 Vfp6r.dll 函數庫 (通常安裝在 Windows 95 的 System 資料夾或 Windows NT 的 System32 檔案夾中) 。


如果一個作用中 .dll 可以專用模式使用執行階段 Vfp6r.dll,對於每個已呼叫的作用中 .dll,則在磁碟上為執行階段 Vfp6r.dll 建立一個重新命名的副本,然後將該副本載入記憶體,並根據該作用中 .dll 的名稱為執行階段 Vfp6r.dll 指定一個名稱。例如,如果一個作用中 .dll 的名稱是 MyServer.dll,則執行階段 Vfp6r.dll 的副本將重新命名為 MyServerr.dll (請注意,將[r]附加在名稱的後面),並將其載入記憶體,為作用中 .dll 提供服務。


Visual FoxPro 執行階段只為在相同程序中執行的作用中 .dll 重新命名。這意味著,兩個在各自程序執行的不同客戶端,可以載入兩個不同的 Visual FoxPro 作用中 .dll,而不必重新命名 Visual FoxPro 執行階段。在這種情況下,兩個 Visual FoxPro 作用中 .dll 都使用 Vfp6r.dll 這個名稱,因為兩個客戶端在各別的程序中載入。


一個作用中 .dll 中的多個自動化伺服應用程式 (使用 DEFINE CLASS 中的 OLEPUBLIC 建立的) 可以共用相同的執行階段 Vfp6r.dll。在這種情況下,透過共用公有記憶體變數、設定相同的 SET 命令等,自動化伺服應用程式將可能互相影響。請注意,避免讓單一作用中 .dll 中的多個自動化伺服應用程式互相影響。
類型函數庫
現在,Visual FoxPro 6.0 支援在自動化伺服應用程式的類型函數庫中固有的 (Visual FoxPro) 屬性、事件和方法程序。類型函數庫中只包含宣告為 Public 的屬性,而沒有保護的和隱藏的屬性。請注意,類型函數庫中不包含 Visual FoxPro 的 Release 方法程序,因為它已經是一個 COM 方法程序。

只要一標示為 PUBLIC,PUBLIC 自訂使用者定義的屬性和方法程序都會出現在 Visual FoxPro 的類型函數庫中。對於方法程序,Visual FoxPro 還包含原始方法程序定義中的一個傳回值型態 (變式) 和參數清單 (變式)。

請注意,在 Visual FoxPro 6.0 中,類型函數庫可以指定一個說明檔。

異常處理
Visual FoxPro 自動化伺服應用程式現在功能更加強大,因此當發生異常時,將可以使伺服應用程式平穩地終止。如果 Visual FoxPro 6.0 的 自動化伺服應用程式發生異常,自動化伺服應用程式將設定 COM ErrorInfo 物件 (透過 IErrorInfo),並取消目前的方法程序。根據 COM ErrorInfo 物件 (以及可以存取 COM ErrorInfo 物件的客戶端) 中的資訊,自動化客戶端可以選擇釋放 Visual FoxPro 自動化伺服應用程式,或是處理異常情況。

Visual FoxPro 6.0 加入了一個新的函數COMRETURNERROR( ),用來處理自動化伺服應用程式中發生的錯誤。COMRETURNERROR( ) 可以用在 Error 方法程序中,並在 COM 異常結構中加入資訊,供自動化客戶端確定自動化伺服應用程式錯誤的來源。詳細內容,請參閱《程式語言參考手冊》中的 COMRETURNERROR( )。

傳遞陣列
Visual FoxPro 5.0 按值傳遞陣列到 COM 物件 (例如在 Visual FoxPro、Visual Basic 或 Visual C 中建立的自動化伺服應用程式);在呼叫一個方法程序之後,陣列元素仍保持不變,而 COM 物件的變更將不會傳遞到客戶端的元素中。這種限制妨礙了在 Visual FoxPro 5.0 和 COM 物件之間來回大量傳遞資料。

另外,傳遞到 COM 物件的陣列假定是從 1 開始記數的陣列,也就是說,陣列中的第一個元素、第一列和第一行是用 1 作參考 (例如,Myarray[1])。但是,有些 COM 物件需要傳遞的陣列從 0 開始記數 (陣列中的第一個元素、第一列和第一行是用 0 作參考;例如,Myarray[0])。

使用 Visual FoxPro 6.0 的新函數 COMARRAY( ) 可以指定如何將一個陣列傳遞到 COM 物件,並且可以指定該陣列是從 0 或是從 1 記數。詳細內容,請參閱《程式語言參考手冊》中的 COMARRAY( )。

請注意,只有使用下列語法將陣列傳遞到COM 物件時,才能使用 COMARRAY( ) 函數︰

oComObject.method(@MyArray)

如果省略 @ 符號,則只有陣列的第一個元素會傳遞到COM 物件,而對 COMARRAY( ) 函數沒有影響。這與早期版本的 Visual FoxPro 運作方式一樣。

從專案中建立 .dll 和 .exe 檔案
由於作用中 .dll 和非作用中 .exe 自動化伺服應用程式是透過類別的起始化來呼叫,因此沒有必要為其指定主程式。在 Visual FoxPro 6.0 中,不必先在[專案管理員]中指定主程式檔,便能建立作用中 .dll 或非作用中 .exe 自動化伺服應用程式。

語言
下表列出了 Visual FoxPro 6.0 新增的屬性和函數,這些屬性和函數可使管理自動化客戶端和伺服應用程式變得更容易。詳細內容,請參閱各個主題。

新建伺服器語言的加強 描述
COMARRAY( ) 函數 指定將陣列傳遞到COM 物件的方式。
COMCLASSINFO( ) 函數 傳回 COM 物件 (例如一個 Visual FoxPro 自動化伺服應用程式) 的登錄資訊。
CREATEOBJECTEX( ) 函數 在遠端電腦上建立已登錄的 COM 物件 (例如一個 Visual FoxPro 自動化伺服應用程式)案例。對於一個 Visual FoxPro 作用中 .dll,可以使用 Microsoft Transaction Server 在遠端電腦上建立該 .dll 的案例。
COMRETURNERROR( ) 函數 在 COM 異常結構中加入資訊,供自動化客戶端確定自動化伺服應用程式錯誤的來源。
ServerName 屬性 包含自動化伺服應用程式的完整路徑和檔案名稱。ServerName 屬性是該 Application 物件的一個屬性。
StartMode 屬性 包含一個數值,說明如何啟動 Visual FoxPro 的案例。
SYS(2334) – 自動化伺服應用程式呼叫模式 傳回一個值,說明如何呼叫 Visual FoxPro 自動化伺服應用程式的方法程序。
SYS(2335) – 非參與的伺服器模式 啟動或停止對一個可分送的 Visual FoxPro .exe 自動化伺服應用程式中 modal 狀態的支援。


自動化伺服應用程式程式設計的注意事項
下面一節提供了有關自動化伺服應用程式其他的程式設計資訊。

Application 物件
在自動化伺服應用程式的類型函數庫中,沒有 Application 物件。這將妨礙對 Application 物件 DoCmd 和 Eval 方法程序的存取,而這兩個方法程序可以提供對整個 Visual FoxPro 語言的存取。如果需要顯現 Application 物件,可以建立一個自訂屬性,將屬性的值設為 Application 物件,也可以提供一個存取 Application 物件的方法程序。

自動化伺服應用程式範例
Visual FoxPro 6.0 包含兩個 ISAPI 自動化伺服應用程式範例︰FoxWeb 和 FoxIS。這些範例可以管理將選定的 Visual FoxPro 資料記錄作為 HTML 傳送到一個網際網路瀏覽工具。有關這些範例的詳細內容,請參閱[FoxISAPI︰自動化伺服應用程式範例]。
回頂端
檢視會員個人資料 發送私人訊息
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 2 樓

發表發表於: 星期三 四月 30, 2003 4:18 pm    文章主題: 引言回覆

轉貼自VFP HELP
Active Document 範例
Visual FoxPro Solution 範例應用程式中包括一個名為[Create Active Document for Web]的範例,展示許多 Active Document 的功能。

若要執行 Solution 範例應用程式

在[命令]視窗中輸入以下命令︰
DO (HOME(2) + 'solution\solution')

– 或者 –

從[程式]功能表中,選擇[執行]。


選擇 Samples\Vfp98\Solution 檔案夾。


連按兩下 Solution.app。
若要執行[Create Active Document for Web]範例

啟動 Solution.app 之後,連按兩下[New features for Visual FoxPro 6.0]。


按一下[Create Active Document for web],然後按一下[Run Sample]按鈕。

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作