UX: サブフォームのスクロール動作の改善
ユーザーフォームは、その名の通り、ユーザーにとって使いやすいことが全てです。しかし、サブフォームとそのコンテンツの間でスクロールの主導権が争われるようなことになったらどうなるでしょうか?つまり、サブフォーム内のリストボックスをスクロールしようとすると、サブフォーム全体が動いてしまう。あるいは、サブフ...
実用的なパターンと技術的な詳細解説をブログから活用して、より優れた4Dアプリケーションを構築します。
ユーザーフォームは、その名の通り、ユーザーにとって使いやすいことが全てです。しかし、サブフォームとそのコンテンツの間でスクロールの主導権が争われるようなことになったらどうなるでしょうか?つまり、サブフォーム内のリストボックスをスクロールしようとすると、サブフォーム全体が動いてしまう。あるいは、サブフ...
埋め込みWebエリアはWebブラウザエンジンとしてCEFを利用しているため、エリアの初期化中に、自動再生ポリシースイッチのような、追加のCEFスイッチを組み込む方法を求める声が以前からありました。 4D 20 R6からは、パラメータファイルを使うことでカスタムのパラメータを管理できます。 ...
オブジェクトは4DランゲージとQodlyにとって不可欠なものとなりました。 しかし、このタイプの変数を宣言するときは、実際には参照を定義していることになります。では、2つのオブジェクトが実際には1つで、同じ参照を共有しているかどうかを知るにはどうすればいいのでしょうか? 4D 20 R6から、オ...
これは誰もが遭遇した問題かもしれません。ユーザーのために、エンティティセレクションを表示する素敵なインターフェースをデザインしたとします。ユーザーはエンティティを削除して表示を絞り込むことができますが、その後には削除したエンティティがあった場所に空のスペースが現れてしまいます。 この場合、どうした...
コンポーネントの開発者は、他の既存コンポーネントのクラスを利用する必要が頻繁にあります。 4D 20 R6 では、宣言された名前空間を持つコンポーネントのクラスは、ホストプロジェクトにロードされたすべてのコンポーネントから、cs.namespace を介してアクセスできるようになりました。 ...
最近、権限と ds.authentify 関数によって REST API へのアクセスを制御する、強制ログインモードを新しく提供しました。このブログ記事で説明されているとおり、この機能は、これまで利用可能だった認証メカニズムよりもはるかに多くのことを提供します。 4D 20 R6 では、強制ログイ...
クライアント/サーバー、Web、モバイルなど、様々なセッションタイプのストレージには情報を保存できるため、異なるプロセス間での再利用が簡単におこなえます。 4D 20 R6 では、特定のセッションのストレージにアクセスできるようになりました。この機能強化により、複数のセッションにまたがる同一ユーザ...
4D 19 R6 では、HTTPクライアントコマンドの構文を近代化し、機能を強化するために、HTTPクラスを導入しました。これをベースに、4D 20 R6 では強力な新機能を追加しました: HTTPエージェントの登場です。これらのエージェントは、HTTPリクエストの接続の持続性と再利用を管理すること...
4D開発において、コンポーネントの管理というタスクは一般的にかなりの労力を必要とします。しかし、4Dの新機能のコンポーネントマネージャー機能を使用することで、コンポーネント管理は大きく進化しました。 コンポーネントを特定のComponentsフォルダに配置する制約がなくなったことにより、この機能は...
GitHubは開発者向けに強力なツールを提供しています。その一つがCodepacesで、統合されたVisual Studio Codeのインスタンスを使って、どこからでもオンラインでGitHubのリポジトリに保存されたコードを開発することができます。 これは4Dプロジェクトでも使用できる機能です!...