Delphi7 使用上的一些狀況 |
答題得分者是:crispin2k
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位! 我現在剛使用Delphi7, 使用上有幾個狀況, 如果各位網友有經驗者是否可以討論一下! 1.Delphi7的安裝是否對機板或內裝的系統有更嚴苛的要求, 我用現有我在寫程式的(原使用Delphi5)的電腦為 P4 2.0 MicroStar還算不錯的板子 512M RAM(系統內裝非常多的應用程式及工具), 裝了十次有八次發生在安裝1/3到一半時就出現藍底白字的Factor error 而導致安裝中斷(必須用ctrl alt del來中斷), 如果我用一顆新硬碟(包含98新裝, 不含任何應用程式或工具, 只裝入應有的介面driver), 一樣安裝十次, 當機率只有2-3次, 這令我不解? 2.Delphi7裝好後, 我用原先Delphi5的程式進行build 行為, 結果發現以前Delhpi5 build 只要花15-20秒即全部完成, 而用Delphi7在同樣的環境設定值等, 要花5分鐘(我計算過), 而且更慘的是, 我在程式中有一個form已remove掉, 但我在程式中有三個form仍然有uses到, 我忘了拿掉, 而Delphi7做下來到我的程式正確的被產生我一共花了20分鐘(因為每一次5分鐘, 查到某一個form有uses到這個form, 才發生錯誤訊息error message然後中斷), Delphi7的build是否就這麼慢, 還是我不知道那裡要設定? 3.有關 proxies.pas 的問題, 我在網路上查了一些文獻, 查到如果要 proxies.pas問題要解決, 必須把 designide.dcp 加到 build with runtime package 內, 我加入後果然delphi7不再問找不到 proxies.pas 的問題(取消runtime 的選擇就會找不到 proxies.pas), 但如果我並不想 bulid 程式時有 runtime package 的模式, 那是否有解呢? 4.我發現原先我用delphi5 build 出來的程式約在 2.8M 的大小, 而用Delphi7 build 出來的只有 2.2M, 是否因為 runtime package 的選擇問題? 5.我在delphi7編譯(complier)時, 出現一堆, unsafe type ....的 warning訊息, 以前不曾在delphi5出現, 如使用到以下的定義
Pointer, TColor, pChar, PAnsiChar, @ operator, getMem....
例如 我指定 var mColor: TColor
不知道這些 unsafe的警告何意? 會不會影響到以後程式運作? 以上是我初使用Delphi7所遇到的問題, 我想由Delph5轉到7是必然的, 因為目前市面上的delphi7的書並不多, 而且多是講基本面的vcl新增功能, 所以各位網友如果對delphi7有比較瞭解的, 是否可以幫幫忙, 在此先謝謝啦!
| ||
領航天使
站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 5.我在delphi7編譯(complier)時, 出現一堆, unsafe type ....的 warning訊息, 以前不曾在delphi5出現, 如使用到以下的定義 Pointer, TColor, pChar, PAnsiChar, @ operator, getMem.... 例如 我指定 var mColor: TColor 不知道這些 unsafe的警告何意? 會不會影響到以後程式運作?其他的問題我沒遇到,所以無法幫您! 第五點:我想,傳統的Pascal應該是沒有這些指標的東西,Pascal的語法是以嚴僅出名,我當初採用Turbo C常常會因為指標或陣列使用不當,造成當機, 所以才選用Pascal,Pascal的Array或Sting對記憶體使用很嚴僅不易出錯, 但若使用PChar或@指標等,會讓程式不安全吧! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
||
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 第五點:我想,傳統的Pascal應該是沒有這些指標的東西,Pascal的語法是以嚴僅出名,我當初採用Turbo C常常會因為指標或陣列使用不當,造成當機, 所以才選用Pascal,Pascal的Array或Sting對記憶體使用很嚴僅不易出錯, 但若使用PChar或@指標等,會讓程式不安全吧! ~~~Delphi K.Top討論區站長~~~不過有一點我不解的是, 為何Delphi5以前並不會有這些warning出現, 同樣是delphi的pascal架構(我的程式是從delphi3一直昇上來的), 還是說發展到Delphi7才發現pchar等這些用法不安全而加入的警告訊息, 另外, 我在delphi5開發的程式, 有時候會莫名其妙的當機, 是否有是這些所謂不安全的定義所造成的, 不知道各位網友是否有遭遇過的經驗? |
||
crispin2k
初階會員 ![]() ![]() 發表:7 回覆:42 積分:33 註冊:2002-07-24 發送簡訊給我 |
所謂不安全的型態的警告是Delphi 7新增的功能,它主要是將程式中比較容易出錯的地方指出,以利程式設計師除錯,就印象中您可以至Compiler選項中將此功能關閉,就不會有這些錯誤訊息。這個功能意味著Delphi 7開發的應用程式更為嚴謹,相對的系統應該更為強固才對。 另外,所謂不安全的型態,如同版主所說的,指的是一些可能導致應用程式錯誤的指標之類的資料型態。至於您說的編譯變慢,當然會變慢才對,因為系統的功能愈多,檢查的項目增多,而程式碼變小,個人認為比較不可能,您見過Delphi版次愈高程式碼越小的情形嗎?
|
||
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 所謂不安全的型態的警告是Delphi 7新增的功能,它主要是將程式中比較容易出錯的地方指出,以利程式設計師除錯,就印象中您可以至Compiler選項中將此功能關閉,就不會有這些錯誤訊息。這個功能意味著Delphi 7開發的應用程式更為嚴謹,相對的系統應該更為強固才對。 另外,所謂不安全的型態,如同版主所說的,指的是一些可能導致應用程式錯誤的指標之類的資料型態。至於您說的編譯變慢,當然會變慢才對,因為系統的功能愈多,檢查的項目增多,而程式碼變小,個人認為比較不可能,您見過Delphi版次愈高程式碼越小的情形嗎?我也是很懷疑程式會變小的問題, 不過的確是如此, 只是因為這支程式使用到 designintf的程式, 又因 proxies.pas 問題, 我必須使用 runtime package 模式, 而我手上所有程式都有用到designintf, 因此我猜想是因為這樣的因素而使程式變小, 目前我還要做一些測試, 如果有得到更新的結果, 再向各位報告!! 另外, 我比較在意的是不安全的問題, 因為這些不安全的行為都發生在十分普遍的程式寫法上, 例如 if FileExists(pChar(myFile)) then .... FileExists指定內部的參數是pChar值, 這就會引發 unsafe warning, 或者我宣告一個 nColor: TColor 的變值, 都是很常見的寫法, 如果要解決這個問題, 那該要如何來替代, 或許 unsafe行為是不影響目前的程式, 可是我擔心的是, 在delphi不斷改版的進度來看, 這版會偵測 unsafe , 那下一版(或許.net)根本就不允許 unsafe模式可以完成編譯, 那將來我們的程式想要昇級的話, 可真是困難重重, 要大失血了! 發表人 - P.D. 於 2002/11/10 22:33:51 |
||
crispin2k
初階會員 ![]() ![]() 發表:7 回覆:42 積分:33 註冊:2002-07-24 發送簡訊給我 |
引言:P.D兄: Compiler對於Unsafe只是一種提醒而已,並不是Unsafe一定都會造成錯誤,且未來也不可能無法編譯,您放心了!他只是希望您的程式更穩固罷了! -- FastReport國內代理網站 Delphi知識分享網引言: 所謂不安全的型態的警告是Delphi 7新增的功能,它主要是將程式中比較容易出錯的地方指出,以利程式設計師除錯,就印象中您可以至Compiler選項中將此功能關閉,就不會有這些錯誤訊息。這個功能意味著Delphi 7開發的應用程式更為嚴謹,相對的系統應該更為強固才對。 另外,所謂不安全的型態,如同版主所說的,指的是一些可能導致應用程式錯誤的指標之類的資料型態。至於您說的編譯變慢,當然會變慢才對,因為系統的功能愈多,檢查的項目增多,而程式碼變小,個人認為比較不可能,您見過Delphi版次愈高程式碼越小的情形嗎?我也是很懷疑程式會變小的問題, 不過的確是如此, 只是因為這支程式使用到 designintf的程式, 又因 proxies.pas 問題, 我必須使用 runtime package 模式, 而我手上所有程式都有用到designintf, 因此我猜想是因為這樣的因素而使程式變小, 目前我還要做一些測試, 如果有得到更新的結果, 再向各位報告!! 另外, 我比較在意的是不安全的問題, 因為這些不安全的行為都發生在十分普遍的程式寫法上, 例如 if FileExists(pChar(myFile)) then .... FileExists指定內部的參數是pChar值, 這就會引發 unsafe warning, 或者我宣告一個 nColor: TColor 的變值, 都是很常見的寫法, 如果要解決這個問題, 那該要如何來替代, 或許 unsafe行為是不影響目前的程式, 可是我擔心的是, 在delphi不斷改版的進度來看, 這版會偵測 unsafe , 那下一版(或許.net)根本就不允許 unsafe模式可以完成編譯, 那將來我們的程式想要昇級的話, 可真是困難重重, 要大失血了! 發表人 - P.D. 於 2002/11/10 22:33:51 |
||
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|||
jieshu
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 不過有一點我不解的是, 為何Delphi5以前並不會有這些warning出現, 同樣是delphi的pascal架構(我的程式是從delphi3一直昇上來的), 還是說發展到Delphi7才發現pchar等這些用法不安全而加入的警告訊息, 另外, 我在delphi5開發的程式, 有時候會莫名其妙的當機, 是否有是這些所謂不安全的定義所造成的, 不知道各位網友是否有遭遇過的經驗?在Programmer 深度論壇有討論過,那些是針對.Net而言,你到深度論壇查一下吧。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |