4

ActionMenuを実行するカスタム パレットを作成しましたClearAll["Global`*"]。目的のアクションを実行しますが、ノートブック セルから直接実行されたときに発生するように、フロントエンドは色を黒から青 (標準) に即座に更新しませんClearAll["Global`*"](他の何かが実行された後にのみ更新されます)。フロントエンドの表示ステータスの更新を開始する方法はありますか?

編集:どうやら、パレットからパッケージをロードすると同じことが起こります(青はすぐに黒に更新されません)。

4

1 に答える 1

6

正確にはエレガントではありませんが、機能します (ClearAll の後にメイン ループを 1 回呼び出す必要があります)。

ActionMenu["Clear", 
   {"Clear global variables" :> (ClearAll["Global`*"]; 
         Block[{nb}, nb = CreateDocument[ExpressionCell[42, "Input"], 
                Visible -> False]; SelectionMove[nb, All, Notebook]; 
            SelectionEvaluate[nb]; NotebookDelete[nb];])}]

もちろん、Mathematica 8 の新しい NotebookEvaluate 関数を使用する必要がありますが、ここでは機能しないようです (つまり、

ActionMenu["Clear", 
   {"Clear global variables" :> (ClearAll["Global`*"]; 
         Block[{nb}, nb = CreateDocument[ExpressionCell[42, "Input"], 
                Visible -> False]; NotebookEvaluate[nb]; 
     NotebookDelete[nb];])}]

エラーメッセージを表示します

Could not process unknown packet "1".
于 2011-08-11T09:54:59.743 に答える