在XE7 android環境, 出現 Access violation ad address 經trace發現,讀取系統時,似乎執行結果會有不同步的回傳 |
|
fred
一般會員 發表:14 回覆:40 積分:10 註冊:2002-06-15 發送簡訊給我 |
我把我的程式片段貼上來
procedure TfrmMain.ListView3ItemClick(const Sender: TObject; const AItem: TListViewItem); var OutFile : string ; begin if ListView3.Selected <> nil then begin OutFile := (ListView3.Selected.Objects.FindObject('dir') as TListItemText ).Text ; ShowMessage(OutFile) ; path :=path '/' copy(OutFile,7,Length(OutFile)-6); // path 在 public 宣告為 string , form createEvent 有定初值 ShowMessage(path) ; if TDirectory.Exists(path) then WorkBackPath(path, ListView3, Label10); //自訂的 function, 其它程式片斷都能正常運作, 不會出錯 end; end; 竟然是 ShowMessage(path) 先出現, 再出現 ShowMessage(OutFile) 的訊息 , 是因 cpu 多核的運作嗎 ? 請高手們也測試一下, 我想破頭也沒想到會有這種不同步的結果, 我的意思是單純的字串運算先回傳結果(如path), 複雜的繼續做後回傳 (像 OutFile) |
fred
一般會員 發表:14 回覆:40 積分:10 註冊:2002-06-15 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
不清楚你 av 的原因,但我很了解你showmessage為何會那樣。那是 xe7 的 "新特色",不久前我才與國外的朋友談過這個發現。你隨便寫個 button click 事件,然後
showmessage('1'); showmessage('2'); showmessage('3'); 它會show 3 ,2 , 1 。 我個人是覺得不合理啦,但老外與官方似乎覺得"正常"。理由是 xe 7 把 showmessage改成 non-block 的模式,就是不會先卡住。 我當時的回應看法是… 我才不管 block 或不block,我只管順序要正確,因為常show一些debug訊息給別人看 (注意,通常我自己debug是不會用showmessage,但基於教學時方便我會,這就是為什麼我發現這問題的因原)。 然… 就是這樣… 只能接受。 此外, 你av 的情形與這個應該沒有關係?! ===================引 用 fred 文 章=================== 竟然是 ShowMessage(path) 先出現, 再出現 ShowMessage(OutFile) 的訊息 , 是因 cpu 多核的運作嗎 ? 請高手們也測試一下, 我想破頭也沒想到會有這種不同步的結果, 我的意思是單純的字串運算先回傳結果(如path), 複雜的繼續做後回傳 (像 OutFile)
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
fred
一般會員 發表:14 回覆:40 積分:10 註冊:2002-06-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |