...................
解決了,有人留言就結貼給分。。。
部分特殊字符,超過GBk的, pansichar 經過c++的Dll函式處理回傳后 ,delphi跟蹤器是顯示為亂碼,跟蹤每個位元組發現其實不是,轉化一下即可。另外發現utf8string和ansistring賦值編譯器不自動轉化?需要強制轉化,utf8string和string之間賦值編譯器會自動轉化。看來以前遇到的類似問題也是如此!!
好幾次了總是在卡在惡心人的小問題上,用著不順手,現在除錯時用著還死機呢。找不到確定原因,很多方面有影響。
還有次跟蹤delphi系統原始碼,加入斷點運行,停下后把滑鼠移動到變數,想看看debug提示,結果馬上死機,以為是巧合,重復無數遍,只要加斷點,滑鼠一移動到變數上就死機,屢試不爽,可惜沒記哪個系統單元檔案。我肯定xe的除錯器一定有大問題!
還有一次發現程式無故運行不起來,直接退出,有時行有時又不行,以為是自己的問題,最后一點一點排除,最后發現竟然是32位環境的中文路徑竟然有bug!!都這年代了還出這問題。。。。
還有次發現廠商推崇的FDA有嚴重的bug,簡單sql陳述句插入資料丟字符!,寫了很多公共FDA的函式,結果全部作廢,老外不知道有個地方叫中國嗎?。
最近想嘗試用用webservice,不知道現在性能怎么樣了,想想還是不要冒險了。。。。
還有現在的ctrl+F設計的好難用,找不到時會彈出提示框,確定關閉后焦點直接落入編輯環境,總是按照d5的習慣用,回車直接就敲了,結果就代碼斷行了。delphi5的用著很順手,查找界面在一起,找全部檔案或者當前檔案頁簽快捷鍵來回切換就行,當前頁找不到直接就找所有檔案了,現在設計的是ctrl+shift+f,好難用,。
再吐個槽,就是幫助幫助,這個我要瘋了,這什么人才設計的!!
幫助調出來后滑鼠選中文字,ctrl+c拷貝代碼 alt+tab切換回delphi,ctrl+v粘貼,暈菜,發現根本拷不上!剪貼板舊的內容直接就糊到代碼中了。非得用滑鼠右鍵復制才行,現在都有強迫癥了,要多按幾次滑鼠才放心,就擔心copy不上。
還有64位下的opendialog打開怎么這么慢,32位的怎么就沒問題?
多好的工具,讓他們糟蹋成玩具了。
溜溜帖看論壇常見的幾個的大號,啥都懂啥都解決不好,回答問題避重就輕,看那留言多不著調。倒是有些不常露面的大中號二話不說人就直接解決問題,這個版塊上來問個問題還不如直接查大富翁呢,用delphi的離了大富翁沒法干活。
uj5u.com熱心網友回復:
一般程式都不用中文目錄,容易亂碼讀取失敗。uj5u.com熱心網友回復:
這么多...人品問題吧...
uj5u.com熱心網友回復:
感覺好可怕。還是D7好uj5u.com熱心網友回復:
他是D5用著順手...

uj5u.com熱心網友回復:
D7是精髓,XE是光輝。uj5u.com熱心網友回復:
那個 DelphiGuy ,試試bug再說,你的嘴應該比腦子慢一步
uj5u.com熱心網友回復:
你的嘴都跑到天頂星了,腦子還停留在單孔目。我很好奇你的所謂BUGs是發生在另一個宇宙,還是存在于你的想象中,由你的腦力BUGs導致的?

隨便測驗一下你所謂的第一個BUG:
另外發現utf8string和ansistring賦值編譯器不自動轉化?需要強制轉化,utf8string和string之間賦值編譯器會自動轉化。看來以前遇到的類似問題也是如此!!
“還不如直接查大富翁”?還不如睜大你的眼睛看看UTF8String是怎么宣告的:UTF8String = type AnsiString(65001); // system.pas
很明顯UTF8String就是codepage指定為65001(UTF-8編碼)的AnsiString,怎么可能“utf8string和ansistring賦值編譯器不自動轉化?需要強制轉化”?那codepage豈不是白指定了?
隨便測驗一下:
var
s1: utf8string;
s2: ansistring;
s: string;
begin
s1 := 'abc 這是一個測驗 xyz';
writeln(s1, ' -> length = ', Length(s1));
s2 := s1;
writeln(s2, ' -> length = ', Length(s2));
s := s2;
writeln(s, ' -> length = ', Length(s));
end;
從D2009以來都是如此:
abc 這是一個測驗 xyz -> length = 26
abc 這是一個測驗 xyz -> length = 20
abc 這是一個測驗 xyz -> length = 14
uj5u.com熱心網友回復:
你這就算測驗了?
就這樣下輩子也發現不了問題。。我提到的其它問題呢? 32位環境的中文路徑和FDA的, 你測驗了嗎?

這么高的號,解決解決,看你多大本事
uj5u.com熱心網友回復:
順便說幾個xe的除錯器問題,如果有遇到除錯死機或者斷點無效的情況大家試試以下的方法:1、不要在滑鼠沒在IDE里時按F8,程式和ide來回切換時很容易直接按F8,非常容易出問題。
2、是不是用的網上流傳的那個盜版?把那兩個exe從win10自帶的防火墻里去掉試試!這個問題前后經歷一年多,到現在也不十分明確到底是什么主要原因造成的,現在是win10正版和comodo防火墻 ,現在很少死機了。
3、除錯時程式好好的但是斷點突然失效?別著急退,正常情況F9運行 ctrl+F2結束除錯不是嘛,斷點失效時按紅色reset按鈕一次,回退一步,如果程式沒有退出且綠色按鈕和紅色按鈕都顯示時斷點就能生效了,如果不行再reset一次回退一步。
4、來回折騰幾次斷點又不能加了?上面方法也不起作用了,保存環境,關閉后重啟xe,斷點就又可以加了。毛病很多的。。。。。
以下兩不是除錯器的問題,是設計器的問題:
5、有沒有遇到過什么都沒做寫代碼時突然跳出一個錯誤框,提示類似記憶體錯誤,確定后馬上彈出一個像花屏似得右鍵選單的??別管它,確定關閉后還能正常運行。下次再出現我截個圖。
6、有沒有使用flowpanel gridpanel relativepanel幾個新控制元件的?你另開了一個驗證程式,逐步設計好各種布局、線條、相對位置。。。等等后滿意了,然后把你的成果界面粘貼到專案中的表單,等待你的將是關不掉的記憶體錯誤框無窮盡地往出蹦。。。。提示讓你發送錯誤資訊給廠家。只能后臺強制結束,再打開專案依然出錯,發現那個被粘貼的單元檔案直接就壞掉了。。。。怎么辦??設計好的界面不能直接使用并且把已有的表單檔案還給弄壞了。。。你還沒來得及提交vss。。。手動重調dfm檔案吧,復雜的可夠你受的。最后還是笨拙地重新把表單做一般。。。討厭嗎?????這玩意設計的。。。。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
那你說什么算測驗?測出你滿意的結果才算?顯然你所謂的“外發現utf8string和ansistring賦值編譯器不自動轉化?需要強制轉化”BUG是不存在的,你還要怎么測驗。至于所謂“32位環境的中文路徑和FDA的”那是你的問題,我沒有興趣幫你解決BUGs,而且你語焉不詳的,有具體例證嗎,腦殘也不需要這樣炫。

uj5u.com熱心網友回復:
同時用D7和XE2的飄過。。。uj5u.com熱心網友回復:
DelphiGuy 不能解決不要罵人,你這嘴不怕人笑話你。uj5u.com熱心網友回復:
遇到這個問題了,順帶截個圖:兩步復現:
1、雙擊選中字串
2、點滑鼠右鍵 ,出錯



不是每次都報錯,但是一定有問題。
uj5u.com熱心網友回復:
解決個馬,你真正需要解決的是自己的腦力問題和人品問題。比如,我前面已經說得很明確:
你居然還厚著臉皮出來噴,仿佛自己擺個POSE就自然勝利了一樣。
uj5u.com熱心網友回復:
遇到這個問題了,順帶截個圖:
兩步復現:
1、雙擊選中字串
2、點滑鼠右鍵 ,出錯
[/img]
不是每次都報錯,但是一定有問題。
一定是你的傻鳥有問題,從D1用到XE5,從來沒有說編輯器里選一段文字,滑鼠右鍵就出錯的事情,你問問其他人有沒有?而且Aution是什么鬼?自造的?識字么?

uj5u.com熱心網友回復:
你嘴真是欠到家了...。看截圖事實說話,其它都是嘴把式。
不需要你攻擊Form起名之類的,想討論討論,不想討論不送....
uj5u.com熱心網友回復:
什么事實?事實是你除了瞎噴之外沒有說出任何有價值的東西,所謂“發現utf8string和ansistring賦值編譯器不自動轉化?需要強制轉化”的BUG是不存在的,“32位環境的中文路徑和FDA的”BUG沒有任何例證,至于編輯器里選一段文字,滑鼠右鍵就出錯的事情,只要長腦子的人都知道這是完全不可能的,唯一的可能性就是你裝了一些亂七八糟的IDE插件或者某些使用HOOK的軟體造成的,你清潔安裝系統和Delphi看看還有沒有?另外,就你這腦力和人品,還討論?你搞沒搞清楚我是在教育你。

uj5u.com熱心網友回復:
“....至于編輯器里選一段文字,滑鼠右鍵就出錯的事情,只要長腦子的人都知道這是完全不可能的,....
是嗎?沒法說你....
三人行必有我師,教育我,謝謝你啊

uj5u.com熱心網友回復:
沒精力專門查問題,今天又遇到了感覺到有規律就嘗試復現以下,以后再復現了其它的再貼。點右鍵報錯的問題出現在使用專案組管理器時,一個project運行時切換到另一個project就會發生錯誤。
復現步驟:
1、創建兩個專案project1 和project2
2、都加入到專案組projectgroup1里
3、選中任意一個專案,比如project1,F9運行起來
4、不要關閉步驟3運行的project1程式,切換到project2
5、打開project2的任意一個單元點,選中代碼,點右鍵,報錯復現!
-------后面的這個說明大家不用管,進一步情況我沒詳細觀察總結,看前面5個步驟即可。
有時選不選中代碼都會出現,出現后有時彈出cpu視窗,關閉cpu視窗,再點,問題不出現了,再在projectgroup1選中project2又出現錯誤。

uj5u.com熱心網友回復:
順便再記錄一個問題,關閉運行的程式后再編譯,經常不能生成exe,要等待一段時間以后再編譯才可以,我這邊是要等待10多秒,不是ctrl+F2的原因,直接點視窗關閉按鈕同樣的問題。。。。。。但是卻能夠直接洗掉exe,洗掉后再編譯可以。
大家遇到過嗎?如何解決?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53638.html
上一篇:Delphi 如何const一個TDictionary靜態變數?
下一篇:Delphi跨平臺開發
