WP New
には,4D Write Proや4D Writeで作成した文書だけでなく,4Dのスタイル付きテキスト(4D HTMLソーステキスト)も渡すことができますが,HTML全般のインポートが保証されているわけではないことに留意する必要があります。コマンドがサポートしているのはXHTML,つまり,XMLに準拠したHTMLだけです。XMLのルールに沿っていないHTMLは,インポートできないかもしれません。
たとえば,HTMLでは,a
タグのsrc
属性に&
のような文字がそのまま記述されていることがあります。XMLのシンタックスによれば,属性値は&
のようにエスケープされているべきなので,そのようなHTMLはWP New
でインポートすることができません。これは,4D Write Pro(XHTML)の仕様です。
17r3(32および64ビット版)の4D ODBC DriverをWindows 7 SP1にインストールした後,データソース名を登録しようとすると,エラー126
が返されることがあります。これは,4D ODBC Driverが新しいWindows SDKでビルドされているためです。
Windows 7をアップデート(KB2999226
)することにより,問題を解消することができます。Windows 10,あるいは17r2以前のバージョンでは問題ありません。
近日中にリリース予定の17.1および17r3(Mac版)は,Xcode 10.1およびmacOS 10.14 SDKがコンパイルに使用されています。これにより,macOS Mojaveでウィンドウリサイズ時に発生する『ちらつき』現象が解消されています。
加えて,まもなくベータ版が公開される17r4では,主要なフォームオブジェクトが従来のHITheme
APIからNSCell
に変更され,システム標準のダークモードに対応しています。
システム標準のAPIで作り替えられたのは,リストボックス・階層ポップアップメニュー・ポップアップドロップダウンリストおよびコンボボックス(標準サイズを超えるものを除く)・ボタン・ラジオボタン・チェックボックス・タブコントロール・スプリッター・ルーラー・進捗インジケーター(非同期とプログレスバーを除く)ウィンドウ背景色・テキスト入力全般・四角形の各フォームオブジェクトです。グループボックスとスタティックテキストについては,現時点で対応してません。
フォントカラーは「自動」に設定されている場合にのみ,システムのテーマを継承します。なお,テスト目的のため,macOS Mojaveでは,caps lock
キーを有効にすることにより,新旧のAPIを切り替えることができるようになっています。
注記: 17r4をダークモードに対応させるためには,64ビット版アプリケーションパッケージ内のInfo.plist
ファイルでNSRequiresAquaSystemAppearance
キーをNO
に設定する必要があります。
Milliseconds の例題と説明文が改定されています。経過時間を計測したい場合,関数から返される値を比較するのではなく,差を計算するべきである点が強調されています。値は約24日毎に符号が反転するからです。
Milliseconds
は,マシン(アプリケーションではありません)が起動されてから経過された時間をミリ秒単位で返します。しばしば時間の計測に使用される関数ですが,符号付き32ビット整数(C_LONGINT
)が使用されているため,2147483647
ミリ秒,つまり約24.86
日毎に返される値の符号が反転することに留意しなければなりません。
経過時間(たとえばプロセスの停止時間)を計測するような場合,Milliseconds+$timeout
のような加算式でタイムアウト時間を計算するべきではありません。そうではなく,必ずMilliseconds
の差と閾値を比較するようにしてください。
たとえば,MAXLONG (2147483647)
に1
を加算すると,-2147483648
になります。比較演算で処理した場合,時間が過去に戻ったような扱いになり,(24日後まで)タイムアウト条件が満たされません。対照的に,値の差を計算すれば,つまり-2147483648-MAXLONG
を求めれば,(整数の符号がまた反転して)1
が返されます。
ドキュメントは17r3で改定されていますが,この情報は過去すべてのバージョンで有効です。
If(Locked([Table_1]))
$starttime:=Milliseconds
Repeat
DELAY PROCESS(Current process;15)
LOAD RECORD([Table_1])
$waittime:=Milliseconds-$starttime
Until(Not(Locked([Table_1]))|(Process aborted)|($waittime>5000)) //最大で5秒待つ
End if
Open window(100;100;300;200;0;"Chronometer")
$vhTimeStart:=Current time
$vlTicksStart:=Tickcount
$vrMillisecondsStart:=Milliseconds
Repeat
GOTO XY(2;1)
MESSAGE("時間...........:"+String(Current time-$vhTimeStart))
GOTO XY(2;3)
MESSAGE("Tick..........:"+String(Tickcount-$vlTicksStart))
GOTO XY(2;5)
MESSAGE("ミリ秒...:"+String(Milliseconds-$vrMillisecondsStart))
Until((Current time-$vhTimeStart)>=?00:01:00?)
CLOSE WINDOW
17r2以降,Webサーバーを公開するためのヘルパーツール(Mac版)の仕様と名称が変更されています。ヘルパーツールが正しい方法でアンインストールされていない場合,Webサーバーの公開で競合が発生するかもしれません。
macOSで1023
以下のTCPポート番号を使用するには,通常,管理者権限が必要です。しかし,サーバーを起動するたびに管理者のパスワードを入力するのは面倒なので,専用のシステム常駐プログラム(ヘルパーツール)を管理者権限でインストールし,ポートを開くことをそのアプリケーションに代行させる,という仕組みが用意されています。
v2004以降,ポート番号を開くためのヘルパーツールHelperTool
と,それをインストールするためのインストーラーInstallTool
が4Dのアプリケーションと一緒に配付されています。
v2004からv17r2のヘルパーツールは,AppleのBetterAuthorizationSampleというサンプルに基づいています。
ヘルパーツールのアーキテクチャ(32または64ビット)は,アプリケーション本体と同じものがインストールされます。名称は, com.4D.HelperTool
です。
ヘルパーツールは,WEB START SERVER
コマンドを実行した場合,サーバー管理画面の「HTTPサーバー開始」ボタンをクリックした場合,あるいはデザインモードの「Webサーバー開始」メニューを選択した場合にインストールされます。データベース設定の「開始時にWebサーバーを起動」オプションは,すでにヘルパーツールがインストールされている環境(あるいは1024以上のポート番号しか使用しないアプリケーション)で使用してください。
ヘルパーツールをインストールするアプリケーションは,コード署名されていなければなりません。4Dでは,コード署名に必要なAppleのデベロッパープログラムに加入しなくても,アプリケーションビルドができるよう,ヘルパーツールをインストールするだけのアプリケーション(署名済み)を提供しています。
17r3では,AppleのEvenBetterAuthorizationSampleに基づき,ヘルパーツールがアップデートされています。新しいヘルパーツールアーキテクチャは,常に64ビットです。新旧のヘルパーツールが共存できるよう,名称はcom.4D.Helper
に変更されています。
ヘルパーツールは,PriviledgedHelperTools
フォルダーにインストールされます。しかし,直接,常駐プログラムのファイルを削除することは推奨されていません。そうではなく,コマンドラインからヘルパーツールのインストーラーInstallTool
にパラメーターを渡してアンインストールする必要があります。
cd {4D.appのディレクトリ}
sudo 4D.app/Content/MacOS/InstallTool.app/Content/MacOS/InstallTool --uninstall
正しい方法でヘルパーツールをアンインストールしなかった場合,Webサーバーの開始時にアプリケーションがフリーズするかもしれません。