1つの例外を除いてすべてのジャーナルを閉じます1つのウィンドウを除く開いているすべてのジャーナルを閉じることができるスクリプトコードの行を探しています。
実際には、正しい名前リストの抽出は機能しません。その場合、開いたままにする必要のあるジャーナル名と一致させることはできません。 以下のスクリプト***を参照してください。
CloseAllJournalsExcept = Function( {},
JournalName = "StaysOpen";
For( i = N Items( Window() ), i > 0, i--,
If( Window( i ) << GetName != JournalName, //***
Window( i ) << close window()
)
);
);
ありがとう。
再:1つの例外を除いてすべてのジャーナルを閉じます
つかいます findAll(journals) ジャーナルのリストを作成し、使用する loc() リストからキーパーを削除するのに役立ちます。次に送信ウィンドウを閉じるリストへのコマンド。以下では、ロックされたアイコンが各ジャーナルに追加され、JMPに「このジャーナルはロックされます。このジャーナルに追加するのではなく、次回に別のジャーナルを作成します」と伝えます。そうでなければ、大量のジャーナルを作成するのは困難です。ジャーナルもマークされています setDirty(0) そのため、それらを閉じるときにプロンプトは表示されません。開いたままにしておきたいと思わないかもしれません。
myJrns = {};
For( i = 1, i <= 5, i += 1,
w = New Window( Char( i ), V List Box( Text Box( Char( i ) ) ) );
j = w << journalwindow;
w << closewindow;
j[Text Box( 1 )] << sibAppend( Icon Box( "Locked" ) ); // locked: just to make a new window each time
Insert Into( myJrns, j );
);
myJrns << setDirty( 0 ); // these were just created, make it easy to close them
// get a list of all open journals
alljournals = Find All( Journals );
// close all but the 2nd one just created...
// myJrns[...] is the list of journals just created
// myJrns[2] is the 2nd one that we decide to keep
// the allJournals list might be in a different order, so
// use loc() to find the matching index in allJournals
keeper = Loc( alljournals, myJrns[2] ); // returns a matrix
keeper = keeper[1]; // was a matrix of one element, now a scalar
// modify the allJournals list so we can close all of its items
Remove From( allJournals, keeper ); // remove the keeper from the list
allJournals << closewindow; // closes all the journals that remain in the list