取出DELPHI所有元件模板的所有元件名稱 |
尚未結案
|
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
小弟欲取出DELPHI所有元件模板的所有元件名稱,參考如下範例程式碼,不過在執行到ToolServices.GetModuleCount時,就會發生Access violation at address 0044120B in mudule project1.exe的錯誤,想請各位先進幫忙測一下在您們的環境上也會有錯誤嗎? 小弟系統目前為安裝DELPHI 5 Update Pack 1(之前有裝DELPHI 6,不過已經反安裝了)。 請各位先進指教,謝謝。
uses ToolIntf,Exptintf; procedure TDBWizardForm.FormCreate(Sender: TObject); var i,k: Integer; begin CBAncestor.Items.Clear; for i:=0 to ToolServices.GetModuleCount-1 do begin for k:=0 to ToolServices.GetComponentCount(i)-1 do CBAncestor.Items.Add(ToolServices.GetComponentName(i,k)); end; end; |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
wnhoo兄可能是China來的吧,看不懂小弟的繁體問題,還請各位版主海涵。 感謝Justmade版主兄提供方向,我再往這方面找找看。 感謝ddy版主兄告知,站長大人有看到小弟的問題時,有勞指點迷津了 ^_^ 上面的範例程式碼是在以下網址找到的:
http://www.caravan.ru/~kukmeet/tipstric.html#s5 另外用google查了ToolServices.GetModuleCount關鍵字只有二個結果,上面那個網址是第一個:
http://www.google.com.tw/search?q=ToolServices.GetModuleCount&ie=UTF-8&oe=UTF-8&hl=zh-TW&btnG=Google 搜尋&lr= 小弟之前是用delphi 6開發,不過目前公司的東西都是delphi 5,想說直接拿來6跑,不過很多是有問題的,像上面所引用的 *intf的部份,6已經都拿掉了,所以只能先在5上面跑。
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
我大約看過一下 : ToolService 是 定義在 ExpIntf 的 : ToolServices: TIToolServices = nil; 而 TIToolService 是 TInterface 即是包含空的 函數定義給其他支援這個 Interface 的 Class 用的。 不過我在 Sources 資料夾卻找不到任何引用這個 Interface 的 Class , 反而在 bin 及 lib 就有不少 binary 檔有 ToolService 字眼。 Delphi 7 也有一個範例引用了 ToolService :
C:\Program Files\Borland\Delphi7\Demos\ToolsAPI\XPAppWiz 看它是不需Create的直接可使用但那個是 DesignTime 的 Wizard 而不是獨立執行的。 我到現時為止的結論是在IDE的環境下 ToolService 會自動被制做並可以使用,但獨立執行(包括在 Delphi Run, 因為Application是用獨立的process run 的) 則不可。所以 ToolService 應專為 Wizard / Component Editor / Property Editor 而設。 請問你執行出錯是在 Delphi IDE wizarrd / editor 還是 Run 它呢?
|
阿子
站務副站長 發表:120 回覆:230 積分:201 註冊:2002-03-18 發送簡訊給我 |
chinliang兄 Justmade 兄 wnhoo兄
1.在這先説明一下好了,之前小弟在
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24930
有介紹了一下有關OTA方面的資料,説明OTA到目前為分為二個版本以Delphi5為分隔點,而chinliang兄您所用的ToolServices 是早期的版本,原則上不建議您在使用早期的版本了。
2.OAT是Delphi IDE 介面是無法單獨在EXE 執行檔中使用。
3.chinliang兄你要的這個功能剛好跟小弟所作的VCL TREE For IDE 工具中取出所有元件清單是一樣的以下附上一段程式碼給你參考,
你先參考看看,若有問題可以一起討論 <>從思考取勝一切~>
------
從思考取勝一切~q |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
感謝Justmade版主、阿子副站長及wnhoo兄熱心回答,照阿子副站長的範例程式碼,不過我跟wnhoo兄一樣不能執行,都會跑進raise Exception.create('Cannot get IOTAModuleServices')這一行,而無法執行下去,我只有uses ToolsAPI跟library path加入$(DELPHI)\Source\Toolsapi這個路徑,還要有其他動作嗎?目前在研究wnhoo兄所提供的資料部份。 我在delphi 5及delphi 6(update pack 2)的環境都試過了,結果都一樣,不知道先進能不能再給小弟指點,謝謝。 註:Justmade版主,可否將您的測試出來的程式碼給小弟試試看呢?小弟的email為chinliang67@yahoo.com.tw,希望不會造成您的困擾 m(_ _)m
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |