問題タブ [livebindings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1251 参照

delphi - Delphi LiveBindings: コンポーネント プロパティを TEdit にバインドする

Delphi XE5 で LiveBinding を使用したい。私はこれが初めてです。

TEdit を含む VCL TForm があります。

別のユニットにコンポーネントがあります:

ここで、MyProperty を TEdit にバインドします。

TEdit を右クリックして [視覚的にバインド] を選択し、LiveBindings ウィザードを使用してこれを試しました。問題は、MyComponent がコンポーネント リストに表示されていないことです。

MyComponent を含むユニットは、フォームの uses 句にあります。

私は何を間違っていますか?

ありがとう!

0 投票する
0 に答える
735 参照

delphi - Delphi Live Bindings でバインディング式にスコープを追加する方法は?

フォームでライブ バインディングを使用して、式を使用してあるプロパティを別のプロパティにバインドする方法を知っています。たとえば、TLabel の Caption を TEdit の text プロパティにバインドします。

IScope、TNestedScope、TDictionaryScope などを使用して新しい式を作成する方法を知っています。独自のクラスを追加して、それらをスクリプト式として呼び出すことができます。

私が知らないのは、最初の段落で説明したことを行っているときに、新しい式スコープを取得して、フォームで使用するために TBindingList の TBindExpressions で使用できるようにする方法です。

誰でもこれを行う方法を知っていますか? 調査しましたが、TBindingList とそのサブコンポーネントで使用できるバインディング式に IScope 参照を追加する方法が見つかりません。

0 投票する
1 に答える
1054 参照

delphi - LiveBinding を使用したカスタム グリッド - EBindCompError 'No list control editor available'

独自の Delphi XE5 カスタム グリッドを設計しています。私は VCL には興味がないので、FireMonkey のみを使用しています。データに対応する必要があるため、LiveBindings は必須です。タスクは複雑なので、非常に具体的な問題だけを尋ねようとします。

序文。FireMonkey (古い VCL と同じように) を拡張するのは少し難しいと思います。インターフェイスを広範囲に使用しますが、オーバーライドできないコードやプライベート メンバーを参照するコードがまだたくさんあります。5 ~ 10 行の動作を変更するためだけに、クラス全体をコピーする必要があることに気付きました。

私が今持っているのは(ME.Grid)です:

すべて RegisterFmxClasses に登録されています。TMEGrid も RegisterComponents に登録されます。

私も持っています (ME.Bind.Grid):

...後者は RegisterLinkGridToDataSourceColumnFactory に登録されます

これらすべてを最小限の実装で実現します。後で動作を追加/変更します。私の目標は、TMEGrid をフォームにドロップし、いくつかのデータセットをドロップして、バインディングでグリッドを処理することです。

(アプリケーションの起動時に) 表示されるのは、EBindCompError 'No list control editor available' です。

これは TGrid から TMEGrid を派生させたときに機能したため (これは他の理由で受け入れられませんでした)、調べてみたところ、Bind.Editors が (TCustomGrid ではなく) TGrid を明示的に参照していることに気付きました。だから私は自分自身を書いた(ME.Bind.Editors):

...後者は RegisterBindEditorFactory に登録されます

しかし、これは何も変わっていないようでした。それでも同じエラー メッセージが表示されます。

何か案は?

すべてのコンポーネント、ファクトリなどは独自のパッケージ (MEComps) に含まれていることに注意してください。プロジェクトには、グリッドとその他のもの (ナビゲーター、いくつかのボタン) を備えた 1 つのフォームしかありません。

編集:手がかりを見つけたと思います。テスト プロジェクト内からソースを確認したところ、

コード行はプロジェクトにコンパイルされません (そこにブレーク ポイントを配置できません)。明らかにそれはプロジェクトに取り込まれていませんが、これは確かに良い兆候ではありません. そこで、対応するユニット (FMX.Bind.Editors) が使用されている場所を確認したところ、この非常に興味深い BindCompFMXReg ユニットが見つかりました。これを研究して、どこかに到達できるかどうかを確認します。

0 投票する
1 に答える
363 参照

delphi - XE6 IDE に TBindScope がありません

TBindScope コンポーネントは XE4 および XE5 IDE に存在しますが、XE6 のツール パレットにはありません。

このコンポーネントは非推奨ですか?

0 投票する
0 に答える
343 参照

android - Delphi XE6 モバイル: TObject プロパティをバインドするときに TListviewItem に割り当てられた TObject を取得する方法

私は次のものを持っています:

TAdapterBindSource および TDataGeneratorAdapter で TMyList を使用して、TMyList を TListview にバインドします。無事、商品が表示されました。

TListview の項目をクリックすると、OnItemClick で、TListViewItem に割り当てられた TMyObject インスタンスを知る必要があります。

リストビューにヘッダー項目があり、インデックス値が対応しないため、TListViewItem.Index を使用しても機能しません。

リストビュー項目がクリックされたときに、TMyObject のプロパティ値を取得する必要があります。

ありがとう。