ヒント

4Dアプリケーションのためのヒントとコツ – 9月版

Deeplからの自動翻訳

by Add Komoncharoensiri, Director of Technical Services at 4D Inc.

さて、今回も技術情報をお届けします。

ご存知のように、4Dナレッジベースは、4Dテクノロジーに関する情報のライブラリーで、毎週技術的なヒントと毎月の技術ノートが活発に公開されています。もし、前回のナレッジベースでのTipsを見逃したとしても、大丈夫です。

このブログでは、16のヒントを紹介しています。

ヒント blank

4Dアプリケーションのための新しいヒントとコツ

Deeplからの自動翻訳

by Add Komoncharoensiri, Director of Technical Services at 4D Inc.

ご存知のように、4Dナレッジベースは、4Dテクノロジーに関する情報を集めたライブラリーで、毎週技術的なヒントと毎月のテクノートが活発に公開されています。もし、あなたがナレッジベースに掲載された最後のヒントを見逃したとしても、それは問題ありません。

このブログ記事では、12のヒントを取り上げています。

製品 blank

パラメーターを簡単に管理する方法

関数やメソッドの宣言では、そのパラメーターを明示的に定義します。そして、その関数やメソッドを呼び出す際に、いくつかのパラメーターが省略可能であれば、それより少ない数の引数を渡すことができます。あるいは、${n} を使った宣言の場合、引数の数は可変です。この場合には Count Parameters コマンドを使い、引数をループさせます。このコードは完璧に動作します。それでも、ちょっと重いですね。

そこで、もっと軽い方法で引数を処理できないかとの要望にお応えして、4D v19 R5 から、新しいコマンド Copy parameters を提供します。これにより、よりエレガントで簡単な、読みやすいコードが書けるようになりました。

製品 blank

ホストプロジェクトからのコンポーネントクラスへのアクセス

Deeplからの自動翻訳

コンポーネントは、クラスを公開できるようになりました!さらに良いことに、アプリケーションがまだバイナリモードの場合、コンポーネントを(プロジェクトモードで)使用して独自のクラスを作成し、(バイナリモードベースの)アプリケーションから使用することで、クラスとオブジェクト指向開発の恩恵を受けることができるようになりました。

製品 blank

クラスの異なる機能へ素早くジャンプ

Deeplからの自動翻訳

クラスは、4D v18 R3 で導入されました。これによって、ビジネスロジックを整理し、UI部分とより迅速に分離することができます。

クラスは長さの異なるいくつかの関数で構成されているので、修正したい関数を探したり、ある関数から別の関数に移動したりするのは必ずしも簡単ではありません。クラスと関数を表示するエクスプローラを使うこともできますが、エディタウィンドウでコーディングしているときは、ウィンドウを切り替える時間を無駄にしたくありません。

4D v19 R4では、クラス内の関数のリストがコードエディタのツールバーに表示され、特定の関数に簡単にジャンプすることができます。

製品 blank

クラスに計算プロパティが登場!

Deeplからの自動翻訳
4D の開発環境にクラスが登場したことで、プログラミングがよりモダンに、より簡単にスケールできるようになりました。クラスにおいては、プロパティや関数の定義を可能なほか、継承をサポートします。
アプリケーションでは、すでに科学データあるいは会計データを管理するクラスを使われているかもしれません。会計データを例に考えてみます。たとえば、税金を計算する関数を作成したとします。また、複数の国を管理している場合、異なるルールを管理するために継承を使用しているかもしれません。そして、これらの結果をリストボックスに表示します。しかし、ユーザーがフォーミュラ内で使用されている属性のひとつを変更した場合、結果を更新するためにはイベントを管理する必要があります。
4D v19 R3 では、計算プロパティのおかげで、このプロセスを簡素化することができます。計算プロパティのゲッターとセッター関数を定義し、このプロパティをリストボックスに追加すると、すべてが 4D によって自動的に処理されます。UI にビジネスロジックを入れる必要はありません。

製品 blank

オブジェクトにBLOB属性を作成する

Deeplからの自動翻訳

4D環境にクラスが導入されたことで、データをオブジェクト、特にblobに格納する必要性が高まりました。そのため、4D v19 R2では、Blobをオブジェクトにカプセル化することができます。

ストレージの面だけでなく、ブロブオブジェクトは参照型なので、メモリの占有率やスピードなどのパフォーマンスが大幅に改善されます。

製品 blank

クラス関数とメソッドのためのコーダーフレンドリーなシンタックス

Deeplからの自動翻訳

コードの中で$1、$2、$nの変数を使うと、コードが読みにくくなるだけでなく、人間の脳はこれらの変数が何に対応しているかを覚えるのが難しいため、混乱が生じる可能性があります。解決策は、わかりやすい名前の変数を作り、その変数に$1、$2、$nの値を代入することです。

4D v18 R5では、宣言時にパラメータに名前を付けることができるようになったという朗報があります。

  • プロジェクトメソッド
  • トリガー
  • データベースメソッド
  • フォームメソッド
  • クラスのコンストラクタ
  • クラスの関数

それでは、見てみましょう。

ゲストポスト blank

4Dでシンプルな “TimeStamp “クラスを作成する方法

Deeplからの自動翻訳

by ゲスト執筆者 Tiran Behrouz, 4D developer (Vancouver, Canada)

4D v17でのORDAの導入は、画期的なものでした。4D v18 R3でのクラスの導入で、私たちは4Dプログラミングのパラダイムシフトを目撃することになるでしょう。ポリモーフィズム、コンポジション、継承といったオブジェクト指向プログラミングの概念を利用して、独自のクラスライブラリを作成することができるようになったのです。このビデオでは、4DとORDAを使って、シンプルなTimeStamp クラスをコーディングする方法を説明します。