【Magic xpa 連載最新号のご案内】 2025年5月7日
Magic xpa 開発者ユーザの皆様へ
【1】 Magic xpa 連載のご案内
------------------------------------------------
本日、Magic xpa の連載、「Magic xpa で作るイベントドリブン型プログラム」の第206回目「フォーム状態の維持と維持バージョン」を連載コーナーにアップいたしました。
Magicで作成したプログラムの実行画面が、Magicの開発版から実行したときとMagicの実行版から実行したときとでレイアウトが異なり、実行版では画面が崩れて表示されてしまうということがよくあります。
事情が分かっている開発者にはそれが当たり前のことでも、そうでない開発者にとってはこれがパニックの原因となり、最終的にはMagicの実行版を再インストールすることでこの現象を回避したという経験をよく聞きます。
今回は、こうした現象がなぜ起きるのかという原因を究明するとともに、この動きを活用した応用事例についての解説も行なってまいりたいと思います。
画面1はAPGで作成した程度のプログラムを、Magicの開発版から実行したときの画面です。とくに何の変哲もない実行画面です。

画面1 APGプログラムの実行画面
そして、このプロジェクトをビルド(キャビネットを作成)して、Magicの実行版から動作させると、同じように次のような実行画面になります(画面2)。

画面2 Magic実行版から実行した実行画面
ところがその後、このプログラムのフォームの縦幅を少し広げ、次のように「終了」ボタンを追加したとします(画面3)。

画面3 縦を広げて終了ボタンを追加
これをMagic開発版から実行すると、次のように正常に変更が反映されます(画面4)。

画面4 追加されたボタンの表示
ところがこれを再ビルド(キャビネットを再作成)して、Magic実行版(画面2と同じPCの実行版)から実行すると、次のようにレイアウトが崩れてしまいます(画面5)。
※このプログラムをはじめて実行するPCでは正常に変更が反映されます。

画面5 レイアウトが崩れてしまった!
ひとたびこのような状況に陥ると、いくらMagic開発版上でフォームを修正しても変更が反映されず、にっちもさっちも行かなくなってしまいます。そして多くのMagicの開発者はここで諦めて、そのマシンだけMagicの実行版を再インストールするという手段を講じてしまいます。
ところが実は、これはMagic実行版の不具合なのではなく、正常な機能の働きの一つなのです。
これが今回のテーマとなります。
さて、ではまずなぜこのような症状になるのかという理由から解説します(以降、本編に続く)。
目次
1. Magic実行版でフォームが崩れる例
2. これは不具合ではなく正常な機能の一つ
3. 実行時に記憶されるフォーム状態の内容
4. 状態を維持せず初期化する端的な方法
5. フォーム状態のバージョンを活用する
6. 関数を使ったフォーム状態の初期化
7. フォーム状態はMDIにも適用可能
8. フォーム状態が保存されているファイル
次回は、「結合リンクと外部リンクの実際」をお送りします。
購読期間中は現在掲載中の過去記事をすべて読むことができます。
皆様のお越しをお待ちいたしております。
サインインしてコメントを残してください。
コメント
0件のコメント