問題タブ [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 に答える
3588 参照

delphi - livebindings を使用した firemonkey モバイル グリッド - 実行時に TextCell のテキストの色を変更する XE5

お金のセルをグリッド上に配置して、現地通貨記号を表示し、右揃えにし、負の数値を赤で表示する必要があります。

同様の投稿とは異なり、livebindings を使用してデータセットから TGrid を設定しています。他の解決策は、グリッドの TStringCell から「TFinancialCell」をサブクラス化することを提案していますが、これは livebindings を使用する場合には困難です。

Livebindings では、Bind Manager がグリッドの列とセルの作成を制御するため、Bind Manager (およびその他の関連クラス) をサブクラス化することはおそらく実用的でもエレガントでもありません。

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

delphi - JSON オブジェクトと配列のライブバインド

こんばんは。

私は現在、現在のプロジェクトの 1 つを更新したいので、Delphi で livebindings を理解しようとしています (他のプラットフォームへのプッシュ、パフォーマンスの最適化、コードの最小化を目的として、ベースから完全に作り直しています)。JSON データを返す Web API を使用しています。1 つのサンプル呼び出しで返される JSON 形式は次のようになります。

ご覧のとおり、これは配列とさまざまな型 (string、float、integer など) のいくつかのデータ フィールドを持つ JSON オブジェクトです。

私のアプリケーション内には、TRESTClient、TRESTRequest、TRESTResponse、TRESTResponseDataSetAdapter、TClientDataSet、および TBindSourceDB コンポーネントがあります。TButton、TMemo、TListView も用意しました。すべてのコンポーネントを livebindings 経由でフックすることができました。ボタン (リクエストを実行する) をクリックすると、呼び出しから返されたデータ全体がメモに表示されます。

私が苦労しているのは、データを ListView にリンクすることです。をそのまま作成しましたFieldDefs(TClientDataSourceこれは に関連する文字通りのツリー ビューChildDefsです)。

  • |--結果 (タイプ: ftString)
  • |--response (タイプ: ftObject)
  • |--|--ips (タイプ: ftArray、サイズ: 6)
  • |--|--|-- ip (タイプ: ftString)
  • |--|--|-- 分類 (タイプ: ftString)
  • |--|--|-- ヒット (タイプ: ftInteger)
  • |--|--|-- 緯度 (型: ftFloat)
  • |--|--|-- 経度 (型: ftFloat)
  • |--|--|-- ゾーン名 (タイプ: ftString)

response.ips[0]次に、BindSourceDB1を TListView のフィールドにライブバインド/ライブバインドしましたItem.Text。残念ながら、アプリケーションを実行してリクエストを実行すると、エラーが発生します。

この例でresponse.ips[index].ipは、配列内の各項目のフィールドを取得し、TListView 内の個々の項目として出力しようとしています。残念ながら、response.ipsインデックスなしでフィールドをライブバインドしても、同様のエラーが発生します。ただし、resultフィールドにリンクすると、期待どおりリストビュー内に「成功」​​メッセージが返されます。

Jim McKeeth の REST クライアントの例を見て、現在のポイントにたどり着きましたが、それを自分のデータに適応させる方法を考えるのは少し難しいことがわかりました。TRESTResponseDataSetAdapter にも独自のFieldDefsプロパティがあることに気付いたので、そこにフィールドを定義する必要があるかどうかわかりません。

データ型の設定が間違っているか、些細なことを見逃していると思いますが、何か助けていただければ幸いです。

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

delphi - XE5 でデータ モジュールに対して LiveBinding を実行できないのはなぜですか?

実際のフォームで TSQlConnection と TSQLDataset を使用した FireMonkey Mobile アプリがあります。データセットは問題なく TComboBox に入力されていましたが、データベース コードなどをすべて DataModule に入れることにしました。

TSqlConnection とデータ ソースを移動し、Datamodul を追加します。すべてが機能し、問題なく開いていることを確認しました。次に、フォームから元のコンポーネントを削除し、バインディングを完全に削除します。データモジュールからのデータを使用するようにバインディングをやり直してください。アプリをビルドし、正しいフォームに進みます...コンボボックスには何もありません。

データセットのオープンなどのイベントが添付されており、それらはすべてオープンで問題ありません。バインディングで FilledList イベントを発生させます...では、以前は表示されなかったのはなぜですか?

コンボボックスのコード

データソースのコード

リンクフィルのコード

コードを追加するために編集されました

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

delphi - Delphi IDE を停止して .vlb ファイルを生成する方法

.vlbファイルには、視覚的な Live Binding データが格納されます。

以前は、私の Delphi プロジェクトはビジュアル ライブ バインディングにまったく触れていませんでした。フォームを保存するたびに、IDE は.vlbファイルを生成しませんでした。

最近、プロジェクトのフォームの 1 つで [視覚的にバインド...] オプションをクリックしました。.vlbLive Binding 設定を持たない他のフォームを保存すると、ファイルが作成され続けます。

Delphi XE4 を使用しています。.vlbVisual Live Binding を使用しないプロジェクトのファイルの生成をオフにするオプションはありますか?