初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-09-25 16:39:34

nice-guy
Member

新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

みなさん、こんにちは。
Ver13、Windowsです。
一つのウィンドウのみが最大化されている(FileMakerそのもののウィンドウは最大化ではありません)状態で開いています。その時にボタンをクリックすると新規ウィンドウが開くスクリプトを仕込んでいます。中味は下記の通りです。
http://nice-guy.org/fm/newwindow.jpg
改行入りスクリプト引数で
1.使用するレイアウト名
2.ウィンドウ名
を与えています。
まず、そのウィンドウを閉じてモーダルで位置を指定して開くという感じです。
さて、この時に、新規ウィンドウを開いたとき、元のウィンドウのサイズと位置が変わってしまいます。元の最大化ままの状態でいて欲しいのですが、どのようにしたら良いか教えてください。よろしくお願いします。

Offline

#2 2014-09-25 16:53:16

Layouter
Guest

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

最大化できるウィンドウは1つだけなので、元の最大化ままの状態にしたら新規で開くウィンドウは表示できません。
ダイアログっぽいだけでMDIを使ってるのでどうしようもない。

#3 2014-09-25 17:46:00

honda
Guest

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

FileMakerのMDIの限界です。
代用するなら、Get ( ウインドウデスクトップ高さ ) - $margin などを使い、非最大化且つ最大のサイズを設定します。
$marginには、環境に合わせた数値、Windows8の標準GUIであれば4などを指定します。

この代用では、アプリケーションウインドウのサイズ変更には追随しないので、
トリガ等で随時実行してやる必要がありますが、
OnLayoutSizeChangeイベントは、アプリケーションウインドウのりサイズで発生しないため使えません。

#4 2014-09-25 23:21:39

nice-guy
Member

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

Layouterさん、hondaさん、回答ありがとうございました。なるほどね、限界なのですね。
honda さんの方法を使わせていただきます。
まず、Windows専用で使います。また、V13なのでXPは使いません。Windows7の時も$marginの値は4でいいのですか?
スクリプトとしては、新規ウィンドウを開く前に今のウインドウサイズを
Get ( ウインドウデスクトップ高さ ) - $margin
Get ( ウインドウデスクトップ幅 ) - $margin
とすればいいのですね?

新規ウィンドウはフィールドピッカーのようなものなのです。
このウィンドウを閉じる際に、またウィンドウを最大化すればいいと言うことですね?

Offline

#5 2014-09-26 10:43:41

honda
Guest

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

ウインドウが複数表示されるタイミングで最大化が解除されるので、
仰るようにピッカー用のウインドウを表示する時だけサイズ調整すれば、
確かに最大化時との変化は最小にできます。
しかし結局サイズが変わってしまうことは同じですから、対応は2通りです。

・上述のスクリプトを常に作動させ、最大化の代わりとする

・ピッカー表示時のみ作動させ、サイズの差を押さえる

ピッカーの使用頻度が低いなら、後者で充分かも知れません。
頻度が高いか、今後同様のウインドウを多用するなら、
端から前者で統一しておいた方が、見苦しくないかも知れません。

なお、マージンは不要なスクロールバーの表示を抑制するためのもので、
お使いのGUI環境によっても変わりうるので、適当に調整します。

#6 2014-09-26 11:21:56

Shin
Member

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

ちょっと古い手法だけど、元ウィンドウのレイアウトを複製し、すべてのフィールド入力を禁止しておきます。
その上に、ダイアログ風のオブジェクトを配置し、その中にポータルなどでピッカを作り込みます。
ちょっと面倒な方法ですが、ウィンドウの処理としては簡単です。

Offline

#7 2014-09-26 11:44:11

nice-guy
Member

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

honda さん、回答ありがとうございました。今回は、フィールドピッカーのようなウィンドウは余り使わないので、後者の方法で対応します。
Shin さん、回答ありがとうございました。
なんと、驚く方法です。でも作る手間が大変ですね。前述したようにhondaさんの方法で対応します。
皆様、どうもありがとうございました。

Offline

#8 2014-09-26 13:01:13

wader
Member

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

FM13なら、ポップオーバーボタンをダイアログの代わりに使うこともできます。

Offline

#9 2014-09-27 19:37:10

nice-guy
Member

Re: 新規ウィンドウを開いたとき、元のウィンドウを固定しておきたい。

wader さん、回答ありがとうございます。そういう手もありましたね。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 517.25 KiB (Peak: 522.16 KiB) ]