フォームとサブフォームの通信を簡単に
4D v19 R5 より、サブフォームに変数を関連付けることができるようになり、フォームとサブフォーム間のコミュニケーションとインターフェースの可能性が豊かになりました。通信手段は、2つの新しいコマンドによって簡素化されました: OBJECT Get subform container value と OBJECT SET SUBFORM CONTAINER VALUE。
パラメーターを簡単に管理する方法
関数やメソッドの宣言では、そのパラメーターを明示的に定義します。そして、その関数やメソッドを呼び出す際に、いくつかのパラメーターが省略可能であれば、それより少ない数の引数を渡すことができます。あるいは、${n} を使った宣言の場合、引数の数は可変です。この場合には Count Parameters コマンドを使い、引数をループさせます。このコードは完璧に動作します。それでも、ちょっと重いですね。
そこで、もっと軽い方法で引数を処理できないかとの要望にお応えして、4D v19 R5 から、新しいコマンド Copy parameters を提供します。これにより、よりエレガントで簡単な、読みやすいコードが書けるようになりました。
4D言語。ご要望の改善点はこちら
短絡的な評価、三項演算子、ループからの脱却、単純なキーワードによるメソッドからの脱却を夢見ることはないでしょうか?
もう、そんな夢は捨てろ!私たちは、4Dフォーラムで寄せられた機能要求に耳を傾け、コードをシンプルにするための4D言語の改良を行いました。
渡されなかった引数にアクセスすることは……可能です!
メソッドや関数は、任意パラメーターを持つことができます。関数が引数 2つで呼び出されることもあれば、3つで呼び出されることもあります。引数を数えたり、そもそも渡されたかどうかをチェックしたり、あるいは単に引数に関連する変数が初期化されているかどうかをチェックすることなく、引数にアクセスすることを誰もが夢見たことがあるでしょう。そうすれば、”If” や “Count parameters” などが不要になり、コードがよりシンプルに、より読みやすくなるはずです。
その夢が実現した、4D v19 R3 に乗り換えましょう! メソッドや関数のパラメーター管理は、かつてないほど簡単になりました。
4D言語 – 文字列比較の改良
4D言語には、文字列を扱うための20以上のコマンドが用意されています。そして、4D v18 R6で、4Dは新しいコマンドを導入しました。Compare strings.また、さらに別のコマンドも改良されました:Position.これらのコマンドは両方とも、より正確な結果を得るためにオプションを使用することができます。もっと学びましょう。
クラス関数とメソッドのためのコーダーフレンドリーなシンタックス
コードの中で$1、$2、$nの変数を使うと、コードが読みにくくなるだけでなく、人間の脳はこれらの変数が何に対応しているかを覚えるのが難しいため、混乱が生じる可能性があります。解決策は、わかりやすい名前の変数を作り、その変数に$1、$2、$nの値を代入することです。
4D v18 R5では、宣言時にパラメータに名前を付けることができるようになったという朗報があります。
- プロジェクトメソッド
- トリガー
- データベースメソッド
- フォームメソッド
- クラスのコンストラクタ
- クラスの関数
それでは、見てみましょう。
直感的なオートコンプリートを実現する新しい宣言構文
4Dのオートコンプリート機能について不思議に思ったことはありませんか?また、なぜ4Dはコード内で使用されているすべての関数を示唆するのでしょうか?オブジェクトは非常に汎用的な型なので、4Dは実行時にしか本当に保存しているものを知りません。しかし、それはコードを書くときにはあまり役に立ちません。
4D では、変数を宣言するときに、オートコンプリートを大幅に強化する新しい構文を提供しています。
異なるタイプの値を格納するためのC_VARIANT
特に一般的なコーディングでは、異なる変数型を扱えるようにコードを書きたい場合があります。ポインターを使用すると、コードの読み取りやデバッグが難しくなります。例えば、データソースとしてフォームオブジェクトに汎用変数を割り当てたい場合など、全く不可能な場合もあります。
新しいコマンドは、異なるタイプの値を格納できる変数を宣言するために使用できます。新しい C_VARIANT コマンドによろしく!