開発ブログ - LiveBindingsカテゴリのエントリ
良くありますよね、%表示したい時って。
だから LiveBindings の CustomFormat に
って書いたのですが、「書式文字列 'Format(... は正しくないか引数の型と一致しません.」というエラーが出てしまいます。
だから LiveBindings の CustomFormat に
Format('%.0f', Self.Value*100) + "%"
って書いたのですが、「書式文字列 'Format(... は正しくないか引数の型と一致しません.」というエラーが出てしまいます。
LiveBindings のカスタム書式ではいくつかのデフォルトの LiveBinding メソッドが使えますが、これだけではなかなかきついですよね。
そんな時には独自のカスタム LiveBinding メソッドを作ることができます。
決まった書き方で関数を作成してパッケージとしてインストールする必要がありますが...
カスタム LiveBinding メソッドの作成
作成したカスタムメソッドがデザイン画面では使えるのに、実行時にエラーが発生する場合には uses に追加すれば使えるようになると思います。
そんな時には独自のカスタム LiveBinding メソッドを作ることができます。
決まった書き方で関数を作成してパッケージとしてインストールする必要がありますが...
カスタム LiveBinding メソッドの作成
作成したカスタムメソッドがデザイン画面では使えるのに、実行時にエラーが発生する場合には uses に追加すれば使えるようになると思います。
TListBindSourceAdapter などを使ってオブジェクトをバインドして使うときに
TBindExpression の SourceExpression で、単純にフィールド名を書くとエラーになってしまいます。
と書く必要があるんですね。
LiveBindings 書式設定式に書けるメソッドには
Format(<書式文字列>, <引数 1>, <引数 2>, …)
IfThen(<条件>, <真の場合の値>, <偽の場合の値>)
Lookup(<スコープ ルックアップ>, <キー フィールド>, <キー値>, <結果フィールド>)
など、その他使える式は以下にあります。
デフォルトの LiveBinding メソッド
http://docwiki.embarcadero.com/RADStudio/XE6/en/Default_LiveBindings_Methods
TBindExpression の SourceExpression で、単純にフィールド名を書くとエラーになってしまいます。
FieldName.Value
と書く必要があるんですね。
LiveBindings 書式設定式に書けるメソッドには
Format(<書式文字列>, <引数 1>, <引数 2>, …)
IfThen(<条件>, <真の場合の値>, <偽の場合の値>)
Lookup(<スコープ ルックアップ>, <キー フィールド>, <キー値>, <結果フィールド>)
など、その他使える式は以下にあります。
デフォルトの LiveBinding メソッド
http://docwiki.embarcadero.com/RADStudio/XE6/en/Default_LiveBindings_Methods
BindSource に対して Locate を使う?
Locate(KeyField, KeyValue)
この時 LiveBindings の設定は
ComboBoxのSynch <-> BindSourceの *
ComboBoxのItem.Text <- BindSourceの 表示フィールド
となっていなければならない
Locate(KeyField, KeyValue)
この時 LiveBindings の設定は
ComboBoxのSynch <-> BindSourceの *
ComboBoxのItem.Text <- BindSourceの 表示フィールド
となっていなければならない