アプリケーションビルド画面の「コード署名」は,少しトリッキーなユーザーインタフェースかもしれません。「ライセンス&証明書」のページで「OS X署名に使用する証明書」の下にある「アプリケーションに署名」チェックボックスを選択し,「認証名」を空にしておいた場合(いずれもデフォルト値),自分の証明書で署名する,という意味になります。使用する証明書は,Apple Developer ID Applicationまたは自己署名証明書です。「アプリケーションに署名」チェックボックスを選択しなかった場合,証明書の代わりにハイフン(-
)が渡され,AdHoc署名が実施されます。いずれにしても,何らかの署名が実施される点に留意してください。
ビルドしたアプリケーションやコンポーネントをコード署名したくないのであれば,ビルドXMLファイルのAdHocSign
をFalse
にする必要があります。
メソッドエディターには,2種類のコメントを記述することができます。
//コメント
)/*コメント*/
)複数行コメントは,入れ子にすることもできます。
/*
から*/
までが複数行コメントとみなされるため,途中に*/
を記述すると,そこでコメントが終わります。
これは仕様です。単一行のコメントを併用するか,*/
の中にスペースを挿入するなど,複数行コメントに*/
を記述しないで済むようにしてください。なお,コメント内で特殊な意味を持つ以下の指示子は,いずれも単一行のコメントでのみ有効であり,インラインコメントおよび複数行コメントでは無視されます。
スレッドセーフコマンドと非スレッドセーフコマンドの共存
開発者による開発者のための機能、コメントへのタグ付け
グローバル警告の生成をカスタマイズする
手動タグ
プロジェクトモードでは,同一マシンで起動したクライアントをサーバーに接続することにより,デザインモードでプロジェクトを編集することができます。つまり,ローカルクライアントの場合,自動的に開発モードが有効化されます。
サーバーは,起動時にprojectToken.json ファイルを作成します。このファイルには,マシンを特定するためのUUIDとフルパスが書き込まれています。
クライアントは,サーバーから送信されたUUIDとprojectToken.json ファイルのUUIDを比較し,合致すれば,ローカルクライアントであると判断します。ローカルクライアントは,クライアントキャッシュを使用せず,projectToken.json ファイルで指定されたプロジェクトのファイルを開きます。
アクセス権の問題等でprojectToken.json ファイルが開けない場合,サーバーと同一マシンからのアクセスであってもリモートクライアントと判定され,デザインモードのエディターがすべてリードオンリーになるかもしれません。そのような場合,サーバー停止中にprojectToken.json を削除し,次回の起動でファイルが再作成されていることを確認した上で,再度アクセスしてみてください。
メソッド名・フォーム名・その他のプロジェクト要素は,カレント言語に対応するICU(International Components for Unicode)のコレーションで比較されますが,変数名は常に英語のコレーションで比較されます。
トルコ語などの「i」は,ラテン文字の「i」「I」と同じ文字ですが,大文字と小文字および点の有無で「ı」「i」「I」「İ」を区別するため,カレント言語で比較した場合,言語によって等価になったりならなかったりする恐れがあります。チェコ語・リトアニア語・エストニア語の環境でも同じような問題が起こり得ます。誤動作を避けるため,変数名はカレント言語が何であれ,英語で比較されます。つまり,大文字と小文字を区別せず,アクセント記号をすべて無視します。これは仕様です。
公開コンポーネントなど,さまざまなシステム環境で運用されるようなプログラムを開発する場合,濁点半濁点・長音記号・半角カナなど,カレント言語に影響されるような文字を変数名には使用しないことが推奨されています。
Mac/Linuxでは,開いているファイルをそのまま削除したり移動したりすることができますが,Windowsでは,まずファイルを閉じなければなりません。4D.File
オブジェクトに対する4D.FileHandle
をインスタンス化している場合,4D.FileHandle
の参照が代入されたローカル変数にNull
を代入する必要があります。Null
を代入してもファイルハンドルが,すぐには解放されず,メソッドを終了するまでファイルを動かせないようであれば,別のローカル変数が同じ4D.FileHandle
を参照していることが原因です。
$f:=$file.open()
...
$f2:=$f // 参照を別のローカル変数に代入
...
$f:=Null // この時点でファイルハンドルは解放されない。$f2にNullを代入するかメソッドを終了する必要がある
起動時に「Profile error occurred」というエラーが表示される場合,CEF(Chrome Embedded Framework)のキャッシュファイルを一旦すべて削除してください。
CEFのキャッシュフォルダーは下記の場所に作成されています。
複数の4Dを同時に起動したことがあれば,CEF_cache
CEF_cache_1
CEF_cache_2
…と番号が付されているかもしれません。