ツールボックスのメニューエディターには「イベントを発生させない」というプロパティが存在します。このイベントとはOn Data Change
のことです。
編集メニューの「ペースト」標準アクションに「イベントを発生させない」プロパティが設定されていない場合,アプリケーションモードでは,ペーストの直前にOn Data Change
イベントが発生します。
これは,通常のタイミング(入力を確定した時点)よりも早く,値が変更される前のことなので,奇妙に感じるかもしれません。編集メニューの標準アクションは,原則的に「イベントを発生させない」設定にしたほうが良いでしょう。これには「取り消し」「やり直し」「カット」「ペースト」アクションが含まれます。
ビルド253159
(18r4)以降,プロジェクトメソッド呼び出しのトークナイズが変更されています。メソッド名とカッコ((
)の間にスペースは挿入されなくなりました。たとえば「デザインモード検索」を実行する場合,新しいトークナイズをサーチフレーズに入力する必要があります。
ビルド252873
(18r5)以降,コメント文のトークナイズが変更されています。シングルラインコメント(//
)の前に2
個のスペースは挿入されなくなりました。METHOD GET CODE
で取得したメソッドのメタ情報(//%attributes...
)も同じように「スペース無し」で返されます。
4Dでは,日付リテラル(定数)をメソッドエディターに記述することができます。
$日付:=!1920-06-30!
ドキュメントに記述されているように,日付リテラルのフォーマットはv15で改定されました。
-
)YYYY-MM-DD
00-00-00
過去のバージョンでは,区切り文字と年月日の順序はシステムのロケール(地域と言語)設定に左右されました。世界的にみて,もっとも一般的なフォーマットは「日月年」または「月日年」,区切り文字はピリオド(.
)またはスラッシュ(/
)記号というものです。
メソッドに入力された日付リテラルは,トークナイズされ,内部的に「年・月・日」に分解されて保存されます。システムのロケールが違う環境でメソッドを開いた場合,日付リテラルのフォーマットは自動的に変換されますが,コピー&ペーストをしたり,メソッドのソースコードをテキスト形式でインポートした場合は,別の値になってしまう恐れがあります。
日本のように「年月日」という順序を採用しているロケールはあまり多くありません。また,区切り文字にハイフン記号を使用しているロケールも,スウェーデン語など,ごく少数です。大抵の地域では,日付リテラルの仕様がv15で変更されたことにすぐに気づきましたが,日本の場合,以前の仕様がISOフォーマットに似ているため,変更に気づかなかったかもしれません。
メソッドエディターにピリオド(.
)またはスラッシュ(/
)区切りで日付リテラルを入力した場合,トークナイズにより,区切り文字が自動的に変換されてハイフン(-
)になります。同時に,2
桁で入力された年は自動的に4
桁に変換されます。
!20/6/30!
→ !2020-06-30!
!20.6.30!
→ !2020-06-30!
SET DEFAULT CENTURY
でデフォルト世紀を変更しない限り,29
年以前の日付は21世紀,30
年以降の日付は20世紀,とみなされます。
両方の区切り文字にハイフン(-
)を入力した場合,2
桁で入力された年はトークナイズで4
桁に変換されません。下記の例では,1世紀の日付を入力したことになります。
!20-6-30!
→ !20-06-30!
当然,この日付で検索を実行した場合,1920年あるいは2020年のレコードはヒットしません。
メソッド日付リテラルを記述する場合,下記いずれかの方法で入力するように注意してください。
.
)またはスラッシュ(/
)を使用する(4
桁に変換されます)-
)を使用するのであれば,年を4
桁で入力する