線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2944
推到 Plurk!
推到 Facebook!

在XE7 android環境, 出現 Access violation ad address 經trace發現,讀取系統時,似乎執行結果會有不同步的回傳

 
fred
一般會員


發表:14
回覆:40
積分:10
註冊:2002-06-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-09-24 16:18:40 IP:1.166.xxx.xxx 訂閱
我把我的程式片段貼上來
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-09-24 16:32:29 IP:1.166.xxx.xxx 訂閱
標題打錯, 無法修改,  更正為  Acess violation at address .............
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-09-24 21:17:33 IP:114.32.xxx.xxx 訂閱
不清楚你 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-09-25 08:01:38 IP:1.166.xxx.xxx 訂閱
謝謝副座的指導, 這個問題我也是在debug 時, 無意中發現的情形, 我的 access violation 和這個無關, 我找出根本原因了,  但是 這種所謂 Block dialog, 或是未名的function 解決 android block 的方式, 我也充分了解了,  也習慣了, 只是,   不按程式碼順序出現的結果, 一時很驚訝, 謝謝蕭老師的指點, 感謝
系統時間:2024-03-29 9:32:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!