4Dアプリ、リリースパッケージを作成

リリースパッケージ作成作業

4Dアプリをビルドしたあとの作業として、次の操作が必要。

1)使用許諾書 KeValueテーブルに読み込む
最初にアプリを起動したときに使用許諾に同意するか促すメッセージをダイアログボックスに表示する。このメッセージはリリース直前まで変更される可能性があるため外部テキストにしている。

2)ライセンス購入 KeValueテーブルに読み込む
利用者はライセンスキーを入力するまではお試し版利用者として扱われ、主要なテーブルへの登録件数が制限されたモードになる。この説明を表示するためのテキスト。やはりこのメッセージもリリース直前まで変更される可能性があるため外部テキストにしている。

3)郵便番号(県、事業所) z_PostalCodeテーブルに読み込む
郵便番号ファイルはテキストで15MBもある。これを出荷前に読み込ませたい。

4つのテキストファイルを読み込ませるため、アプリ側は、A00_AddNecessariesというメソッドでそれぞれテーブルにImportする仕掛けになっている。出荷時に毎回これを実行するたびに、ファイルオープンダイアログでテキストファイルを指定していた。

これを修正
Importメソッドを修正してリソースフォルダからダイアログ無しで読み込むことにした。

「jiro」フォルダに上記4つのファイルを入れておいて、ビルド後のパッケージの中のresourcesフォルダに入れる。なぜresourcesかというと、Get 4d folderで取得できるからだ。Componentsと違ってビルド時にアプリ側にコピーされないため手作業でコピーする必要があるが。
ちなみにComponentsフォルダにテキストファイルとフォルダをおいてみたら、ビルドしてもコピーされなかった。おそらくビルド時にコピーされるのは4DBファイルとそれを内包するフォルダに限定されていると思われる。

この状態で、アプリを起動。4DDファイルを作成するダイアログが表示されるので、アプリと同じフォルダを指定。

このあと、郵便番号を読み込むかどうかのダイアログが表示されてリターンすれば、自動的にテキストファイルが読み込まれる。ImportメソッドはDocument to blobを使うことによって高速化した。

追伸:
v15.2 Hotfix1で起動時の速度は速くならなかった。

カテゴリー: 4D

4D Drag Window

4D v15で動作テストしていたら、以前動いていたウインドウをドラッグして移動させる機能が反応しなくなっていた。

ボタンオブジェクトのオブジェクトメソッドに次のように記述していた。
DRAG WINDOW

これだけでこのボタンをドラッグすると、ウインドウもドラッグできるという便利なコマンド。

なぜ動かなくなったかというと、どうやら、
4Dがボタンオブジェクトの描画方法をOSに任せるようになったため。別件だが、このおかげでmacだとOKボタンの文字が白抜きになって読めない、という弊害も発生している。

この仕様変更につられて、通常のボタンはクリックすると反転イメージに描画される、そのところでDRAG WINDOWが無視されてしまうのではないか、という見立てです。

解決策は、透明ボタンを使うこと。
こちらは描画方法をOSに任せていないため、v11以前の4Dと同様に4DがOSに頼らずに描画、ハンドリングしているとみられる。このためDrag Windowも正しく動作するというわけだ。

20160726 Bugとして認定された

カテゴリー: 4D

4D Serverが使うポート

4D Serverとポート番号

4D Serverは3つのTCPポートを使用して内部サーバとクライアントの通信を行います:

・SQLサーバ: デフォルトで19812 (環境設定の”SQL/設定”ページで変更可)。

・アプリケーションサーバ: デフォルトで19813 (“クライアント-サーバ/設定”ページで変更可)。

・DB4Dサーバ(データベースサーバ): デフォルトで19814。このポート番号を直接は変更できません。常にアプリケーションサーバのポート番号+1です。

詳しくはここ:
http://www.4d.com/docs/CMJ/CMJ40960.HTM