メインコンテンツへスキップ

マルチモニタ(デュアルディスプレイ)対象のアプリ作成方法

コメント

24件のコメント

  • 津久井空

    ご回答ありがとうございます。

    二つアプリを立ち上げると、そのアプリ間での連携をとらなければいけなくなります・・・。

     

    単純に、サブディスプレイの領域にまで画面を拡張することができれば、簡単な実装ですむのですが・・・・。

  • 津久井空

    ウィンドウをドラッグすれば画面をまたがせることが可能です。

    しかし、アプリ起動時には、メインディスプレイのサイズに戻ってしまいます。

     

  • Tanda

    > 起動時、Magicのウィンドウを、メインのディスプレイのサイズを超えて表示させる方法はありますでしょうか?

    該当プログラムをSDI表示する方法ではどうでしょうか?フォーム特性で「ウィンドウタイプ」を「S=SDI」にすれば、メインプログラムのMDIの外に表示させることができます。

  • nkmt

    SDIフォームにして、並行実行モードにして

    複数の画面を起動しっぱなしという処理は、ここ数年よく取り入れております。

    SDIフォームにすれば

    Magicのフォーム(MDI)を飛び出せます。

    並行実行にすると、呼び出した側と呼ばれた側とは
    親子関係は無くなるみたいな感じです。
    的外れな回答ならすみません。

  • nkmt

    ISHIJIMAさん

    uniPaaS V1 Plusもフォーム状態IDをセットしたら、
    実行版で、フォーム位置や大きさを覚えてくれるのでしょうね。

    uniPaaS V1 Plusでは使った事がありませんでした。
    ありがとうございました。

  • nkmt

    SDIはTandaさんと回答が被ってしましました。
    回答開始時は、Tandaさんの文書はまだ目にしていなかったものですから。

  • 津久井空

    ISHIJIMA様

    > 開発版で確認していませんか?

    > 開発版の実行はフォーム保存はされません。

     

    開発版で確認していました・・・・。

    ご指摘ありがとうございます。

    実行版で確認いたします。

     

  • 津久井空

    tanda様、nkmt様。

    ご回答ありがとうございます。

     

    SDIフォームにするだけでは、メインプログラムのMDIウィンドウの外には出せませんでした。

    nkmt様ご指摘の通り、並列実行モードにすると、外に出すことができました。

     

    実は今回は、既存のプログラムを改修してデュアルディスプレイに対応させる予定です。

    この方法ですと、nkmt様ご記載の通り、親子関係が切れてしまうためか、データの受渡について、それなりに改修が必要になりそうですね・・・。

     

    外部アプリからウィンドウサイズをむりやり拡張できないか検討し、それが無理ならばこの方法を採りたいと思います。

    ありがとうございました。

  • nkmt
    あまり使った事がありませんが、以下はどうでしょうか?
     
     
    Magicウィンドウを最大表示
     
    Magic uniPaaSのウィンドウを最大表示します。
     
    MDIプログラムで実行した場合、MDIが最大化されます。SDIプログラムで実行した場合、SDIが最大化されます。
     
    構文:
     WinMaximize()
     
    パラメータ:
     なし
     
    戻り値:
     論理値 …… 処理に成功した場合「True」が返ります。
     
     
     
    但し、片方のディスプレイの範囲で大きくなりそうですね。

     

  • nkmt

    並行実行で親子関係が切れてしまいますが、こっちの画面を残したまま
    片方の操作を終わらせる事なく、画面をこかわるばんこに操作出来ますね。

    両者の受け渡しは私の場合は、メモリテーブルを
    SHAREDVALSETして
    呼出し元の コンテキストに対して、イベント実行して
    呼出し元のPGがイベント実行されて、SHAREDVALGETして
    データを複数行受け取るといった事をやった事があります。


    メモリテーブルではなく、SQLServer、Pervasiveなどでやり取りするのも
    いいのでしょうね。

  • Tanda

    > SDIフォームにするだけでは、メインプログラムのMDIウィンドウの外には出せませんでした。

    xpaなら問題なく出せるのですが、uniPaaSだからでしょうかね?ハテ?

  • nkmt

    ついさっきそう思ったのですが、今回の構成は

    対面ディスプレイにされるのかな?と思いました。


    スタッフ様とお客様が向き合って、いろいろお話伺いながら

    入力などして、お客様側は閲覧のみ、または同時に操作は出来ませんが
    タッチモニターでシンプルな画面とか。

  • Tanda

    > XPAだとエラーも出ませんし問題なく表示されますね・・・

    そういえばそうでした。uniPaaSからxpaになって感動した記憶があったのを思い出しました。2009年の頃でしたから、もう11年も前のことになりますね。

  • nkmt

    お客様用画面をSDIでサブディスプレイ側に表示出来れば
    MDIを最大化する必要も無いのでしょうね。

    スタッフ側から、お客様用画面をビュー再表示などする事を予想します。

     

  • 津久井空

    nkmt様。

    ご回答ありがとうございます。

    ご推察の通り、スタッフ様とお客様が対面される形になります。

    ただし、複雑なことは必要なく、かつ、今のプログラムへの改修をすくなく実現したいと思っています。

    その点から、おそらく一番てっとりばやそうなのが、現在存在するスタッフ用画面の大きさを大きくして、サブディスプレイ側にはみ出させ、そこにお客様用のコントロールを貼り付ける、という方法です。

    ディスプレイをまたいでいるため、見た目上は別画面ですが、一つのフォームです。

     

    このため、質問させていただいた次第です。

     

  • Tanda

    > そういえばそうでした。uniPaaSからxpaになって感動した記憶があったのを思い出しました。

    つまり、xpa以降は同一コンテキスト内でSDIが実現可能になったわけです。

  • nkmt

    津久井様、いいアイディアですね。ありがとうございました。

  • 津久井空

    tanda様、ISHIJIMA様。

     

    ご回答ありがとうございます。

    xpaだとできるのですね・・・。

     

    過去、マイグレーションは、V8からuniPaaSを経験しており、その際はマイグレーション後のテスト・調整にかなり工数がかかった記憶があります。

    uniPaaSからXPA系へのマイグレーションは、この辺りはスムーズにいくものなのでしょうか?

  • Tanda

    津久井さん、今苦労してuniPaaS向けにプログラムを作られても、xpaにすればパラメータ1個で目的が実現されてしまうということもあり得ますね。

  • 津久井空

    tanda様。

    現時点でかなり大きな稼働中のuniPaaSのプログラムがあります(デュアルディスプレイ非対応)ので、マイグレーションにかかる費用を含めて検討したいと思います。

     

  • Tanda

    > 過去、マイグレーションは、V8からuniPaaSを経験しており、その際はマイグレーション後のテスト・調整にかなり工数がかかった記憶があります。

    V8からuniPaaSへは、レコードメインからイベントドリブン方式に根底から変わった次期でしたから大変だったと思います。Magicがイベントドリブン方式になってから以降は、それほど困難ではないと思います。

  • 津久井空

    tanda様、ISHIJIMA様。

    ご回答ありがとうございます。

    V8からよりは、かなり楽になっていそうですね。

    検討させていただきます。

     

  • Tanda

    私の連載のタイトルが、「 Magic xpa で作るイベントドリブン型プログラム」というネーミングになっているのも、そのためです。

  • 津久井空

    かなり前の投稿ですが・・・。

    本件、XPAへマイグレーションし、実現することができました。

    みなさまありがとうございました。

サインインしてコメントを残してください。