オンリサイズ… オンリサイズ… オンリサイズ… オンリサイズ…

Deeplからの自動翻訳

美しくダイナミックなユーザーインターフェースを作成するにはどうしたらよいか、悩んでいませんか?通常、フォームのサイズが変更されると、水平サイズや 垂直サイズのプロパティが移動または拡大に設定されているフォームオブジェクトは、自動的にサイズが変更されます。場合によっては(例えば、より細かいユーザーインターフェースの管理)、開発者はフォームオブジェクトのサイズと位置をプログラミングで管理することを選択します。そのためには、フォームメソッド内で発生する “on resized” イベントをチェックします。しかし、フォームに一つ以上のサブフォームが含まれている場合はどうなるのでしょうか?何階層にもわたって?このブログの記事がその答えを教えてくれます。

サブフォームとサブサブ フォームと…

親」サブフォームオブジェクトのサイズが変更されたときのサブフォームオブジェクトの管理は複雑に見えるかもしれませんが、そんなことはありません。Execute method in subform コマンドを使うか、サブフォームオブジェクトの関連する値を変更し、その後、サブフォームの中で、生成されたon bound variable change イベントを管理することで可能です。

4D v18からは、さらにシンプルになりました。4D v18からは、さらにシンプルになりました!サブフォームメソッドで直接、on resize イベントを管理することができます。より便利で、より論理的で、より簡単になりました。このイベントは、メインフォームでサブフォームオブジェクトのサイズが変更されるたびにトリガーされます。このイベントが発生するのは、次のような場合です。

  • メインフォームのサイズが変更された (サブフォームオブジェクトのサイズも変更された) 場合。これは最もわかりやすいケースです。
  • スプリッタがサブフォームオブジェクトの高さや幅を変更した場合。これほど明白ではありませんが、特筆すべきことがあります。
  • サブフォームオブジェクトのサイズが、OBJECT SET COORDINATES コマンドを使用してプログラミングによって変更された場合。このケースはさらにわかりにくいので、忘れないようにしましょう 🙂

まとめ

もし、あなたのアプリケーションですでにこの種のシナリオを管理しているなら、コードの簡略化を検討してもよいでしょう (あるいは、しなくてもよいでしょう。”If it ain’t broke, don’t fix it”).しかし、今後の開発では、このイベント管理の簡略化を評価することになるでしょう。

Roland Lannuzel
- プロダクトオーナー&4Dエキスパート -電子工学を学んだ後、産業用ITの分野で開発者兼コンサルタントとして、さまざまなデータベースやテクノロジーを使って顧客のためのソリューションを構築。80年代後半に4Dに惚れ込み、会計、請求書作成、メールシステムなどのビジネスアプリケーションの作成に4Dを使用してきました。現在も、新機能やデータベース開発ツールの定義など、4Dの未来を積極的に切り開いています。