2011-12-20 9 views
0

私は、各エントリごとに異なるグローバル変数MenuItemの値を設定することだけが共通のコールバック関数を共有するエントリを持つ簡単なメニューセットを作成するスケルトンGUIアプリケーションを用意しています。 Switch-Case式の中のMenuItemの値ごとに異なる関数が呼び出され、Switch-CaseはMenuItemが特定の値に達するための終了条件を持つWhileループ内に保持されます。 Whileループの末尾には、Switch-Caseの後のuiwait呼び出しがあります。Matlab GUIの変更2009a - > 2011b?

これはMatlab 2009aでうまくいきましたが、Matlab 2011bにアップグレードしてから壊れています。

Matlab 2011bでは、コールバックでMenuItemの値が変更されましたが、この変更された値はSwitch-Caseに伝播していないようです。

これを引き起こした2009aと2011bの間に変更点があり、その回避策はありますか?私はリリースノートを読んでみましたが、関連性のあるものは見つけられませんでした。

(私はこれはGUIを構成するやや非正統的な方法です感謝し、それはコマンドラインプログラミングの背景から生まれている)

+6

コードを投稿してください。再現するのは非常に難しいです。または少なくともエラーメッセージ。 –

+1

MatLabにはデバッガがあります。これを使って。また、GUIの変更ではなく、グローバル変数の処理方法の変更を探しているように思えます。 –

+0

朝(GMT) –

答えて

2

私はGUIのAPIは、2009Aおよび2011Bの間でMATLABに変更されているとは思いません。 MenuItemの変更がswitchケースに伝播しない場合は、比較対象の文がまだ有効であることを確認する必要があります。あなたは、より合理的な診断を行うために少なくともswitchの文の上に自分のコードを載せるべきです。