問題タブ [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.
delphi - livebindings を使用した firemonkey モバイル グリッド - 実行時に TextCell のテキストの色を変更する XE5
お金のセルをグリッド上に配置して、現地通貨記号を表示し、右揃えにし、負の数値を赤で表示する必要があります。
同様の投稿とは異なり、livebindings を使用してデータセットから TGrid を設定しています。他の解決策は、グリッドの TStringCell から「TFinancialCell」をサブクラス化することを提案していますが、これは livebindings を使用する場合には困難です。
Livebindings では、Bind Manager がグリッドの列とセルの作成を制御するため、Bind Manager (およびその他の関連クラス) をサブクラス化することはおそらく実用的でもエレガントでもありません。
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
プロパティがあることに気付いたので、そこにフィールドを定義する必要があるかどうかわかりません。
データ型の設定が間違っているか、些細なことを見逃していると思いますが、何か助けていただければ幸いです。
delphi - XE5 でデータ モジュールに対して LiveBinding を実行できないのはなぜですか?
実際のフォームで TSQlConnection と TSQLDataset を使用した FireMonkey Mobile アプリがあります。データセットは問題なく TComboBox に入力されていましたが、データベース コードなどをすべて DataModule に入れることにしました。
TSqlConnection とデータ ソースを移動し、Datamodul を追加します。すべてが機能し、問題なく開いていることを確認しました。次に、フォームから元のコンポーネントを削除し、バインディングを完全に削除します。データモジュールからのデータを使用するようにバインディングをやり直してください。アプリをビルドし、正しいフォームに進みます...コンボボックスには何もありません。
データセットのオープンなどのイベントが添付されており、それらはすべてオープンで問題ありません。バインディングで FilledList イベントを発生させます...では、以前は表示されなかったのはなぜですか?
コンボボックスのコード
データソースのコード
リンクフィルのコード
コードを追加するために編集されました
delphi - Delphi IDE を停止して .vlb ファイルを生成する方法
.vlb
ファイルには、視覚的な Live Binding データが格納されます。
以前は、私の Delphi プロジェクトはビジュアル ライブ バインディングにまったく触れていませんでした。フォームを保存するたびに、IDE は.vlb
ファイルを生成しませんでした。
最近、プロジェクトのフォームの 1 つで [視覚的にバインド...] オプションをクリックしました。.vlb
Live Binding 設定を持たない他のフォームを保存すると、ファイルが作成され続けます。
Delphi XE4 を使用しています。.vlb
Visual Live Binding を使用しないプロジェクトのファイルの生成をオフにするオプションはありますか?