フォームで開発プロセスを強化

Deeplからの自動翻訳

開発段階において、構文エラーを早期に検出することは、質の高いコードを作成するために重要である。リアルタイム・コードチェックは、開発者にとって貴重な支援となる。効率を向上させるだけでなく、品質を高め、生産性を向上させます。エラーを即座に修正することで、コンパイル中に発生する厄介なバグではなく、アプリケーションの機能開発に集中することができます。

4D 20 R8では、あなたの仕事のやり方を変える2つの新機能をご紹介できることを嬉しく思います。

  • 1つ目は、クラスをフォームに関連付ける機能で、Form.myPropertyのような式の構文チェックを可能にします。
  • もうひとつは、プロパティリストの式をリアルタイムでチェックし、エラーや警告の説明を表示する機能です。

クラスとフォームの関連付け

新しい“Form class” 属性を使って、ユーザクラスをフォームに関連付けることができるようになりました。この属性は Formコマンドによって返されるオブジェクトを入力できます。Form.myProperty のような式を使用できます。ユーザー・クラスは、ホスト・プロジェクトまたはコンポーネントのものを使用できます。

実行時の自動インスタンス化

フォームを開くときに、オブジェクトを DIALOGコマンドにオブジェクトを渡すことができます。このオブジェクトは、Form コマンドによってフォームからアクセスできるようになります。

コマンドに渡されるオブジェクトは DIALOGコマンドに渡すオブジェクトはクラスのインスタンスにすることができます。以下にその方法を示します:

var $h Integer
var $o :cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass";$o)

バージョン 4D 20 R8 以降、オブジェクトをコマンドに渡さずにフォームに“Form class” プロパティを定義した場合、4D は自動的にそのオブジェクトを処理します。 DIALOGコマンドにオブジェクトを渡さずに、フォームに “Form class” プロパティを定義すると、4D は自動的にインスタンス化を処理します。次のように書くだけです:

var $h :Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")

この Formコマンドは “Person “クラスのインスタンスであるオブジェクトを返します。これをフォームで確認するには OB Instance ofコマンドで確認できます。

$n:=OB Instance of(Form;cs.Person)

これで、単にこう書くだけでクラス関数を呼び出すことができます:「Form.message() “と書くだけです。

コードエディターの利点

オートコンプリート機能

コードエディターの Formコマンドはコードエディターでオートコンプリートの恩恵を受けます。Form.” と入力すると、4Dは関連するクラスで宣言されたすべてのプロパティと関数を提案します。プロパティ名の2文字を反転させたり、関数名の大文字の代わりに小文字を使ったりする必要はありません。

例えば、単純な “Person “クラスを次のように定義します:

property firstname Text
property lastname :Text
property email :Text

Class constructor
This .firstname:=""
This lastname :=""
This email :=""

Function get fullname () :Text
return This firstname +" +This.lastname

フォームメソッド内で Formコマンドを使用する場合、コードエディタはコードを完成させるための正確なリストを提供します:

blank

構文チェック機能

フォームメソッド内やフォームオブジェクトのメソッド内で “Form.myProperty” 型の式を使用する場合、構文チェック機能の恩恵を受けることができます。

前のクラスの例を見てみましょう。フォームメソッドのコードでは、次のようにしています:

  • テキスト属性に整数を強制的に入力しています、
  • 未知の属性を使用しています、
  • text型の計算属性に整数を代入しています。

次の画像では、コードエディターがエラーや警告を効果的に識別していることがわかります。

blank

フォームエディタの利点

プロパティリストに統合された構文チェック

構文チェックはもはやコードエディターに限定されません。この機能は、プロパティリストの式(「データソース」や「メタ情報式」など)に拡張されています。その結果、エラーや警告の通知を即座に受け取ることができます。

blank

エラーを発見するためにコンパイル結果を待つ必要はありません。この機能のおかげで、編集段階の早い段階で通知されます。

コンパイル

もちろん、新しいエラーを直接解決していない場合でも、コンパイラはコンパイル中にエラーを検出します。

コンパイラーダイアログ

すべての警告とエラーはコンパイルウィンドウに表示されます。フォームオブジェクトの式をダブルクリックすると、対応するフォームが開き、プロパティリストで問題のあるオブジェクトとそのプロパティがハイライトされます。

blank

コンパイルプロジェクトコマンド

コンパイルに失敗した場合 Compile projectコマンドは警告とエラーを含むオブジェクトを返します。このコマンドは、フォーム・オブジェクト式で検出された警告やエラーを返すように拡張されました。

{
    "success":false、
    "errors":[{
        "message": "Undeclared property 'firstName' used.(550.26)",
        "isError":false、
        「code": {
            "type": "formObjectExpression"、
            "formName": "Person"、
            "objectName": "InputFirstname"、
            "propertyName": "dataSource"、
            "file":"[object File]"
            }
        }]
}

次の機能

これらの新機能により、コードを書くのがより簡単で効率的になります。

これらの改善について、あなたの経験を遠慮なく共有してください。あなたのコメントは、私たちがこれらのツールが日常的にどのように役立っているかを理解し、あなたのニーズによりよく適応させるために貴重なものです。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。