Re: [問題]debug mode與實際運跑有差異

作者: wsqa (工作要順利``)   2015-07-28 23:23:07
還是找不到原因
附上範例程式碼及過程
首先定義cell變數
a{1,1}='A';
a{1,2}='我';
a{2,1}='B';
a{2,2}='你';
並將a另存成a.mat
在GUI內設定兩個text分別為text1,text2
在整個GUI的opening function內加入
load('a.mat');
handles.a=a;
以讀取cell變數a
並在text1加入一個keypressfunction
其程式碼為
currChar = get(handles.figure1,'CurrentCharacter');
a=handles.a;
Key_word = get(handles.edit1,'String');
if isequal(currChar,char(13)) %char(13) == enter key
for i=1:length(a(:,1))
try
b=Key_word;
if strfind(a{i,1},Key_word)==1 && strfind(Key_word,a{i,1})==1
search_result=a(i,2);
set(handles.edit2,'string',search_result{1,1});
vb=actxserver('wscript.shell');
vb.SendKeys('{TAB}');
end
catch
end
end
end
guidata(hObject, handles);
主要目的為在text1上打A(B)並按下enter
可以在text2上顯示其對應的值我(你)並同時將打字的閃爍I跳到text2
但結果都是按第一次時,會先將打字的閃爍I跳到text2
而回去按第二次text1 enter時,才會改變成相對應的值
一直搞不懂是什麼原因
希望有人能幫我看看這個問題
非常感謝!!!
※ 引述《wsqa (工作要順利``)》之銘言:
: 各位先進
: 我最近有一個GUI的問題一直持續發生
: 但我又找不到原因
: 就是我在使用breakpoint來debug的時候
: 程式運作很正常,如我想要的狀況
: 但是實際在運行GUI
: (使用KeyPressFcn在text裡面輸入好直接按enter運行)
: 就會跟我有設breakpoint的過程不太一樣
: 例:觸發KeyPressFcn的callback會開始比較字串是否一樣
: 。在GUI運行時,必須按第二次才會進行比對(第一次好像會讀到空的??)
: 。而在breakpoint的狀態,則是直接就會進行比對
: 請問這可能是哪個地方出問題了呢
: 謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com