過去の桐井戸端BBS (桐ver.9)
25299 異なるサイズのモニターでひとつのフォームを使うときフォームのサイズはどのようにすればいいのでしょうか 玉太郎 2004/03/07-18:50
またまた質問させてください。
今度はフォームについて質問します。

LAN上で一括処理でつくったシステムを使用しているのですが
モニターのサイズがいろいろ存在しています。

No1は800X600
No2は1024X768
No3は800X600
No4は1024X768

といった具合です。
私の使用しているサイズは1024X768です。
このサイズでフォームをつくっていますので
800X600では大きすぎ画面からはみ出してしまいます。
画面サイズを統一できればいいのですがそうもいきません。
こういった時どうすればいいのでしゅうか?

よろしくご指導ください。
25302 ディスプレイサイズに応じた表示 佐田 守弘 2004/03/07-19:36
記事番号25299へのコメント
玉太郎さん
私は以下の方法で行っておりました。
1)最大化の設定
フォームの属性で[フォーム]のタブを開き、「ウィンドウのサイズ」を最大化に設定します。
2)フォームに合わせる設定
次に[オプション]のタブを開き、「編集時の表示倍率」を「ウィンドウに合わせる」に設定します。

設定は以上なのですが、いくつかポイントがあります。
・フォームの余白
余白は必要最小限に留めて下さい。
・フォームの形式
チャイルドではうまく行かない様です。
オーバーラップを使うと全画面にフォームが広がります。

また異なるサイズのディスプレイですが、ディスプレイサイズは必ずしも相似形ではありません。
このために上記の設定を行っても、下あるいは右に多少の余白が生じる事は避けられません。
どのサイズのディスプレイでも、定義したオブジェクトがちょうど収まる様にしたいというのは不可能です。
どうしても行うなら、ディスプレイ毎に
ディスプレイの縦横比に合わせたフォームを作るしかありません。

佐田守弘(KS-00119)
25306 Re:フォームのサイズ ONnoji 2004/03/08-15:18
記事番号25299へのコメント
玉太郎さん、こんにちは。

桐のバージョンが不明ですが…

以下は私( ONnoji )ならば、こうするかな〜という無責任な内容ですが…

私は一括処理でアプリを作らないので、以下はイベント処理の場合です。

画面サイズの違いは仕方がありませんね。

しかし、#WSNAME 関数で コンピュータ名は識別できそうです。
また、#ユーザ名で使用者も識別できそうです。
※詳しくは関数のヘルプを参照ください。

おそらく、フォームは最大化して使うだろうと思うので、
フォームの属性の[ウィンドウのサイズ]を最大化にすればどうでしょうか?

それから、フォームの属性の[編集時の表示倍率]を適当な値に加減したいのですが、
[オブジェクト操作]コマンドでは[編集時の表示倍率]は設定できません。

そのために、[メソッド呼び出し]コマンドで、
[表示倍率の設定( <倍率> ) ]メソッドを実行して、
画面サイズに合わせた倍率に加減してしまいます。
※[フォーム開始]イベントでOKだったと思います。

さらに格好良くするには、オブジェクトの幅を変更する必要もあるかもしれませんね。

タラレバの話ですいません。m(__)m

<追伸>

以下はあくまでも私の個人的な感想ですが…

誰が操作してもフォームのオブジェクトの幅が一定であるのは面白くないです。
テキストボックスの幅は自由に変更できた方が良い場合が多いです。
また、幅変更したことが次回に引き継がれるともっといいですね。

また、フォームの倍率が記憶されて次回に引き継がれるのも便利です。

(若いときには気が付きませんでしたが、)
[目にやさしい字の大きさ]というのがやっぱりあります。(^^ゞ
個人差があるので、フォームの倍率が記憶されて次回に引き継がれるのは便利ですよ。


戻る