準確地重新建立一個新的視窗()在其確切的狀態<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在創建一個動態的新視窗(),其中包含 x 個選項卡和圖表(其他內容)。有沒有類似 Eval(dt << Get Script) 的東西可以準確地重新建立視窗?保持所有按鈕功能完好無損,並有效地知道我在哪裡。
現在,如果我這樣做,我甚至無法使用 eval(nw<
編輯*只是為了清楚起見。我試著重新創建一個窗口,但不知道它裡面到底有什麼。 這是我想出的例子來展示我正在談論的內容:
名稱預設為此處( 14 );
CW=轉換檔案路徑( “./” );
新窗戶( “測試” ,
列錶框(
TB=標籤框(
“選項卡1” ,
配電箱( “選項卡 1” ,
磅=列錶框(目錄中的文件( “$SAMPLE_DATA” )),
按鈕盒( “打開” ,
文件=(磅<<被選中)[ 1 ];
dt =打開( “$SAMPLE_DATA\” ||檔)
)
),
)
),
列錶框(
按鈕盒( “後退” , TB<<設定選定((TB <<被選中)- 1 )),
按鈕盒( “下一個” ,
新標籤=評估(other_boxes[(tb<<被選中)]);
待定<<附加( “標籤” , 新標籤);
待定<<設定選定((待定<<獲取選擇)+ 1 )
)
)
);
其他框 = {
面板盒( “空白,因為…原因?” ),
面板盒( “列名” ,
碰撞盒(dt,全部)
)
};
看來普遍的共識是否定的。所以我將其標記為已回答。
回覆:精確地重新建立一個處於精確狀態的新視窗()感謝您。享受。
回覆:精確地重新建立一個處於精確狀態的新視窗()抱歉,我是開玩笑的。我知道你不是在製作電子遊戲。
接下來,我的範例展示了一種方法並且是獨立的。我沒有為你創造一個神奇的按鈕。你不能只是竊取一種方法論。讓我笑的是,你認為你可以將我的程式碼放入你的程式碼中並期望它能夠工作。但要回答你的是,右側的視窗永遠不會改變,而且看起來程式碼每次都準確地複製該視窗。您需要從上到下進行比較。
我沒有報酬來幫助這些論壇上的人們,而且我失去了耐心。我建議你回去,實際閱讀程式碼並理解它在做什麼。我希望你一切順利。
回覆:精確地重新建立一個處於精確狀態的新視窗()謝謝,它很有用,但它只能從中獲得選定的值。我正在尋找更多視窗本身的複製品。
回覆:精確地重新建立一個處於精確狀態的新視窗()不,不是創建視頻遊戲。因此出現了「類比」這個詞。 這是一個例子:
名稱預設為此處( 14 );
CW=轉換檔案路徑( “./” );
新窗戶( “測試” ,
列錶框(
TB=標籤框(
“選項卡1” ,
配電箱( “選項卡 1” ,
磅=列錶框(目錄中的文件( “$SAMPLE_DATA” )),
按鈕盒( “打開” ,
文件=(磅<<被選中)[ 1 ];
dt =打開( “$SAMPLE_DATA\” ||檔)
)
),
),
按鈕盒( “重新創造” ,
製表計數器 = 1 ;
文字列表={ ”” };
包括(cwd|| “/recreateWindow2.jsl” )
)
),
列錶框(
按鈕盒( “後退” , TB<<設定選定((TB <<被選中)- 1 )),
按鈕盒( “下一個” ,
新標籤=評估(other_boxes[(tb<<被選中)]);
待定<<附加( “標籤” , 新標籤);
待定<<設定選定((待定<<獲取選擇)+ 1 )
)
)
);
其他框 = {
面板盒( “空白,因為…原因?” ),
面板盒( “列名” ,
碰撞盒(dt,全部)
)
};
現在,當我執行此命令時,當我在按重新建立時得到的結果旁邊運行時,我會得到類似的結果。

這是我選擇一個數據表並打開它然後按下一步後的情況。

這是我再次按下下一步的時候。

現在我要你標記左右圖像之間的差異。當我說這不起作用時,是因為我嘗試過。除非我誤解了你所說的工作或如何使用你的腳本。但我的期望是右邊應該看起來與左側完全相同(假設我已經打開了正確的數據表)。不僅如此,所有選項卡中的所有按鈕也應該起作用。
回覆:精確地重新建立一個處於精確狀態的新視窗()抱歉,我沒有意識到您正在製作一款視訊遊戲。因此,我建議首先專注於建立遊戲引擎,然後建立保存狀態將是一件簡單的事情。
對於閱讀此論壇的其他人來說,他們想要一種更簡單的方法來重新建立窗口,但也不了解方法。我附上了一個更複雜的範例,展示了穩健性和簡單性。
您將執行 recreateWindow.jsl,它將提示您輸入 recreateWindow2.jsl 的路徑。
如果您對運行這些文件有任何疑問,請告訴我。
回覆:精確地重新建立一個處於精確狀態的新視窗()我不知道您是否曾經在舊的任天堂遊戲中使用過模擬器,但這使用了與此類似的稱為保存狀態的東西。
我想要的是保存狀態。 能夠準確保存我所處的關卡、我在螢幕上的位置等的東西。告訴我重新啟動遊戲並不是我想要的。
該方法解決了不同的問題。我不明白這對此有什麼幫助。
我想同意不同意。 我無意冒犯。很抱歉最初沒有正確解釋自己。
回覆:精確地重新建立一個處於精確狀態的新視窗()如果你有一些有效的東西,我不會進一步推動。但讓我澄清一下你上面所說的。
這方法做為您工作,因為使用者在選項卡 1 中提供的資訊將用於建立選項卡 4(或任何選項卡)。
如果您只是重新運行腳本,用戶將必須瀏覽選項卡 1-3 才能返回選項卡 4。這是事實,但這並不適用方法,這僅適用於範例。
「現在我必須創建一個腳本來提取所有必要的函數並將其保存到 jsl(與您所說的非常相似,只是我必須即時創建它)。”
如果它已經創建了,為什麼還要動態創建它? 也就是說,您有一個可以建置一次的腳本,為什麼要建立第二個腳本來建置它兩次?
回覆:精確地重新建立一個處於精確狀態的新視窗()抱歉,我一定說錯我的問題了。此方法對我不起作用,因為用戶在選項卡 1 中提供的資訊將用於建立選項卡 4(或任何選項卡)。如果我只是重新運行腳本,用戶將必須瀏覽選項卡 1-3 才能返回選項卡 4。並且選項卡沒有指定,它們可以是任何東西。現在我必須創建一個腳本來提取所有必要的功能並將其保存到 jsl(與您所說的非常相似,除了我必須即時創建它),這只是有點令人困惑。如果沒有更好的辦法我會處理。謝謝。
回覆:精確地重新建立一個處於精確狀態的新視窗()我編寫了一個腳本,用於捕獲選擇的選項卡以及文字編輯框、數字編輯框、組合框和列錶框的值,並在視窗關閉時將它們儲存在全域二維數組中。 當視窗開啟時,這些值將設定為視窗關閉時捕獲的值。
我在腳本中包含了一個範例視窗來顯示功能,但 getValues 和 setValues 函數用於捕獲狀態並在腳本再次運行時重置狀態。
限制:
1. 此程式碼不考慮任何動態建立的顯示框。 您需要調整程式碼來解決這個問題。
2. 此程式碼不會重新運行您的任何平台。 您可以根據需要調整程式碼來執行此操作。
3. 當關閉JMP 時,狀態將會遺失。 不過,您可以將陣列保存在文字檔案而不是全域變數中,並且可以在 JMP 的所有實例中檢索這些值。
4. 我沒有在此腳本中實現複選框(以及我忘記的任何其他顯示框)。
腳本附後。
如果您對腳本有任何疑問,請告訴我。
回覆:精確地重新建立一個處於精確狀態的新視窗()我不知道該告訴你什麼。我的解決方案準確地重新創建了窗口,k保持所有按鈕功能完整,並且可以知道您所在的選項卡以及 OP 中要求的所有內容。
另外,Eval(nw<回覆:精確地重新建立一個處於精確狀態的新視窗()
我使用腳本創建它,但用戶將選擇他們想要的視窗外觀(打開哪些數據表等)。如果我在按儲存狀態時處於選項卡(2)上,我希望能夠開啟回到儲存狀態,目前選擇標籤(2)並且所有報表和表格都開啟到同一位置。現在我正在創建(嘗試創建)一個函數,將所有相關函數拉入一個字串中,然後對其進行 eval(parse()) 處理。它比像 Eval(nw<回覆:精確地重新建立一個處於精確狀態的新視窗()
我假設您使用腳本建立了動態視窗。在這種情況下,您只需讓按鈕再次運行腳本即可。
名稱預設為此處( 1 ) ;
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
西北=新窗戶( “測試” ,列錶框( “劇本” ,
雙變數(是( :高度) , X ( :重量) ) ;
分配(
連續分佈(
柱子( :高度) ,
自訂匯總統計數據(意思是( 0 ) )
) ,
連續分佈(
柱子( :重量) ,
自訂匯總統計數據(意思是( 0 ) )
)
) ;
按鈕盒( “重新建立視窗” ,
包括( “路徑\到\這個\腳本\recreateWindow.jsl” ) ;
)
)
) ;
回覆:精確地重新建立一個處於精確狀態的新視窗()你是對的,會話腳本不是我想要的。如果我嘗試這樣做,它所做的只是打開我打開的資料表。它甚至不嘗試創建一個新的 window()。
另外,我嘗試了 eval(nw<嗯為什麼它不起作用是有道理的,我只是希望有一個簡單的解決方案,而不是如果我不知道一切會是什麼,我就必須重新創建一切。
我會讓希望再活一會兒。
只是為了澄清我的要求:
框1 =面板盒( “1” , 特布 =文字編輯框( “這是一個測試” ),按鈕盒( "列印" ,列印(特布<<取得文字)));
框2 =面板盒( “2” , 特布 =文字編輯框( “這是一個測試” ),按鈕盒( "列印" ,列印((特貝<<取得文字)|| “查理” )));
框3 =面板盒( “3” , 特布 =文字編輯框( “這是一個測試” ),按鈕盒( "列印" ,列印((特貝<<取得文字)|| “蘇西” )));
西北=新窗戶( “例子” ,
TB=標籤框()
);
東西=評估者({框1,框3});
為了(我= 1 ,我<=尼特姆斯(東西),我++,
待定<<附加(字元(一)、東西)
);
西北<<取得腳本
/* 返回
V 列錶框(
V 列錶框(
標籤框(
標籤頁框(
標題(“1”),
面板框(文字編輯框(“這是測試”),按鈕框)
),
標籤頁框(
標題(“2”),
面板框(文字編輯框(“這是測試”),按鈕框)
)
)
)
)
*/
它沒有視窗標題或按鈕框的腳本。而且,就是不會跑。
回覆:精確地重新建立一個處於精確狀態的新視窗()很遺憾, ” A會話腳本將捕捉到大多數特徵」似乎並沒有捕捉到文斯想要的東西。動態選項卡框處理得不好。在上述腳本的修改版本中,我運行它,然後保存會話腳本,然後檢查它。選項卡框不會轉移到會話腳本中。
初步腳本
名稱預設為此處( 1 ) ;
dt =打開( “$SAMPLE_DATA/big class.jmp” ) ;
新窗戶( “測試” ,標籤框( “選項卡 1” ,遠東= V 列錶框() ) ) ;
如果(模組(天(今天() ) , 2 ) == 0 ,
x1 = V 列錶框(
標籤框(
“雙變量優先” ,
BIV =雙變數(是( :高度) , X ( :重量) ) ,
距離=分配(名義分佈(柱子( :年齡) ) )
)
) ,
x1 = V 列錶框(
標籤框(
“分配第一” ,
距離=分配(名義分佈(柱子( :年齡) ) ) ,
BIV =雙變數(是( :高度) , X ( :重量) ) ;
)
)
) ;
遠東<<附加( x1 ) ;
會話腳本
打開( “C:\Program Files\SAS\JMPPRO\12\Samples\Data\Big Class.jmp” ,視窗邊界( 275 ,第484章, 1288 , 1141 ) ) ;
新窗戶( “測試” ,
V 列錶框(
分配(名義分佈(柱子( :年齡) ) ) ,
雙變數(是( :高度) , X ( :重量) )
)
) <<移動視窗(第722章, 15 ) <<尺寸視窗(第488章, 1025 ) <<設定視窗圖示( “報告文件” ) ;
回覆:精確地重新建立一個處於精確狀態的新視窗()A會話腳本將捕獲自訂報告和互動式變更的大部分功能,包括像 Jim 的範例中那樣的複合報告。 但它也會節省用於重新建立您可能不關心的其他視窗和表格的程式碼。
您可以隨時儲存會話腳本文件菜單。
也可以在首選項中進行設置,以便在退出 JMP 時始終保存會話腳本。
回覆:精確地重新建立一個處於精確狀態的新視窗()雖然 JMP 可以很好地創建腳本來重新創建任何單獨的平台,但它不會將其轉發到由這些平台組成的用戶創建的顯示視窗。
下面的腳本是一個非常簡單的範例,說明 JMP 不會從使用者定義的顯示視窗建立可用的腳本。
名稱預設為此處( 1 ) ;
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
西北=新窗戶( “測試” ,選項卡框( “劇本” ,
雙變數(是( :高度) , X ( :重量) ) ;
分配(
連續分佈(
柱子( :高度) ,
自訂匯總統計數據(意思是( 0 ) )
) ,
連續分佈(
柱子( :重量) ,
自訂匯總統計數據(意思是( 0 ) )
)
) ;
)
) ;
RR =西北<<取得腳本;
展示( RR ) ;
評估( RR ) ;