ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />これは非常に単純な質問のように思えるかもしれませんが、JSL を使用してユーザーがウィンドウやダイアログのサイズを変更できないようにする方法はあるのかと疑問に思いました。
自動伸縮、最小サイズと最大サイズなどについて表示ボックスに送信できるメッセージがあります。デフォルトでウィンドウのサイズを変更するユーザー機能をオフにするフラグはありますか (つまり、マウス カーソルをホバーしたときにサイズ変更矢印が表示されません)窓の端に? 何かあるはずなのですが、見つかりません。
ありがとう。
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?素晴らしい提案です、デイブ!あなたのデザインがとても気に入ったので、同様のことを検討します。私は通常、最後に示したアウトライン ボックス ソリューションを使用します。これはシンプルで実装が簡単ですが、必ずしも最もプロフェッショナルに見えるデザインであるとは限りません。結局のところ、エンドユーザーが誰であるかが重要だと私は考えています。私のスクリプトのほとんどでは、それは実際に私だけのものです。
に関して:「ダイアログを閉じるには、コンテンツ サイズをゼロに設定するか、コンテンツを削除します (ダイアログの値は、簡単にリロードできるように名前空間にキャッシュできます)。
「If box()」がより簡単な解決策になると思います。
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?表示ボックスのサイズ変更は JMP ユーザー インターフェイスに固有のものであるため、プログラミングの観点からサイズ変更の問題を回避するのは困難です。全体的に見て、これは非常に便利だと思います。たとえば、多数の項目がある場合や長い名前の項目がある場合にリスト ボックスを拡張する場合です。しかし、見た目に美しいインターフェイスをデザインしようとすると、作業が難しくなる可能性があります。スプリッター ボックスは役に立ちますが、ユーザーに分割コンポーネントのサイズ変更を促す傾向もあります。ユーザーダイアログと出力要素の両方を含む単一のウィンドウが必要な場合は、インタラクションのレベルについて考える必要があると思います。 私はダイアログが比較的頻繁に行われない対話のためのこのタイプの構成をよく使用します。私の推奨するアプローチは、ウィンドウ上にダイアログのオンとオフを切り替えるボタンとして機能するボタンを配置することです。

(ダイアログのないレポート ウィンドウ - 左中央の「オプション」ボタンを押すとダイアログがオンに切り替わります)

(ダイアログがオンになっているレポート ウィンドウ)
最も基本的なレベルでは、これは H リスト ボックスに合わせて配置された 2 つのコンテンツで構成されます。
ダイアログを閉じるには、コンテンツ サイズをゼロに設定するか、コンテンツを削除します (ダイアログの値は、簡単にリロードできるように名前空間にキャッシュできます)。
より簡単な解決策は、コンテンツと水平方向に整列したアウトライン ボックスを使用することです。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
ダイアログ= V リストボックス(
アウトラインボックス( 「デモダイアログ」 、
<<輪郭を閉じる方向( "垂直" ) 、
ラインナップボックス( Nコル( 2 ) 、間隔( 10 ) 、
テキストボックス( 「ラベル1」 ) 、
テキスト編集ボックス( 「値1」 ) 、
テキストボックス( 「ラベル2」 ) 、
テキスト編集ボックス( 「値2」 ) 、
)
)
) ;
コンテンツ= V リストボックス(
二変量( Y ( :重さ) 、バツ( :身長) )
) ;
新しい窓( 「ダイアログ付きレポート」 、
H リストボックス(
ダイアログ、
スペーサーボックス(サイズ( 10 、 0 )) 、
コンテンツ
)
) ;

「Outline Close Orientation」というメッセージを使用すると、コンテンツをウィンドウの横に折りたたむことができます。

- ちょっとしたアイデアです。
デイブ
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?キーワードは「プログラミング言語」、ここでも jsl はスクリプト言語です。
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?改めて感謝します、msharp、
レポートダイアログの場合、ユーザーがウィンドウのサイズを変更できることに問題はありませんでしたが、ユーザー入力を求めるダイアログの場合は問題ありませんでした。 これらには情報を入力できるフィールドの数が固定されており、私の意見ではサイズを変更する必要はありませんが、それは純粋に見た目の美しさのためであり、物事の全体的な計画における大きな問題ではありません。 ただ、GUI ウィジェットを備えた他のプログラミング言語では、サイズ変更には実際の目的がないため、警告ダイアログなどのダイアログのサイズをユーザーが変更できないようにするオプションがあります。 あると便利なオプションだと思いました。
いずれにせよ、H/V スプリッター ボックスの例をありがとう。これは将来的に間違いなく活用するものです。 乾杯。
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?それが目的である場合、すべてのコンテンツを 1 つのウィンドウに入れることができない理由はありますか?H スプリッター ボックス/V スプリッター ボックスを使用するのがおそらく最良の解決策です。次の例では、ウィンドウ内のすべての表示ボックスを表示したままにし、ウィンドウのサイズを変更するときに灰色のスペースを防ぎます。スクリプト索引から:
デフォルトの名前はここにあります( 1 ) ;
新しい窓( 「スプリッター」 、
Vスプリッターボックス(
サイズ( 800 、 600 ) 、
H スプリッター ボックス(グラフ=グラフボックス() 、スクリプトボックス() 、 <<サイズ( { 0.6 、 0.4 } ) ) 、
H スプリッター ボックス(
ピクト=画像ボックス(開ける( "$SAMPLE_IMAGES/tile.jpg" 、 jpg ) ) 、
スペーサー=スペーサーボックス() 、
<<サイズ( { 0.4 、 0.6 } )
)
)
) ;
グラフ[フレームボックス( 1 )] <<自動ストレッチを設定する( 1 、 1 ) ;
ピクト<<最小サイズの設定( 100 、 100 ) ;
ピクト<<最大サイズの設定( 500 、 500 ) ;
ピクト<<自動ストレッチを設定する( 1 、 1 ) ;
スペーサー<<塗りつぶしの設定( 1 ) ;
スペーサー<<色( "赤" ) ;
スペーサー<<自動ストレッチを設定する( 1 、 1 ) ;
これはより良い解決策になります。ウィンドウのサイズ変更を許可しないと、エンド ユーザーに迷惑をかけることになります。
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?こんにちは、msharp さん
ご返信ありがとうございます。 この方法は問題なく機能するように見えますが、おそらくこの動作を「騙す」方法は他にもいくつかあるでしょう。
これが必要な理由は、ユーザー入力とレポートの両方のためのダイアログ ウィンドウを持つカスタム アプリケーションを作成しているからです。 ユーザーがウィンドウをクリックしてサイズ変更できるようにして、ウィンドウ内の表示ボックスの一部が隠れてしまったり、ウィンドウをドラッグして幅を広げてしまい、醜い灰色のスペースが大量にできてしまったりすることは望ましくありません。 これは純粋に美的理由からであることは認めますが、配布用に JSL でアプリケーションを作成する人々にとっては便利なオプションであると考えただけです。
もう一度乾杯。
Re: ユーザーが JSL でウィンドウのサイズを変更できないようにするにはどうすればよいですか?あなたが説明する関数はすべて、ウィンドウ内の表示ボックスのサイズを変更するためのものです。しかし、ウィンドウ自体が変更されるのを止めたいようです。なぜこれを行う必要があるのかわかりませんが、これはオペレーティング システムのパワー ユーザーであれば答えられるかもしれない問題です。これは、スクリプト言語で得られる機能ではありません。Windows 7、8、10、または Mac (Snow Leopard、Capitan など) に変更を加える必要があります。
とにかく、騙すことはできます。おそらく次のようなものでしょう:
新しい=新しい窓( 「サイズ変更はできません」 ) ; // サンプルウィンドウを作成
サイズ=新しい<<ウィンドウサイズの取得; // サイズを取得する
//リサイズ関数
サイズ変更=関数({} 、
新しい<<ウィンドウサイズの設定(サイズ[ 1 ] 、サイズ[ 2 ]) ; //ウィンドウのサイズを変更する
スケジュール( 0.1 、サイズ変更()) ; //0.1秒ごとにウィンドウのサイズを変更します
) ;
//関数を呼び出す
サイズ変更() ;
// スケジューラ ウィンドウを非表示にしてイリュージョンを完成させます
待って( 0 ) ;
窓( 「スケジューラー」 ) <<ショーウィンドウ( 0 ) ;
//または << Set Window Size:
//nw << ズームウィンドウ;