2015-12-09 c++ builder > LiveBinding > 3. 疑問点 > Form間のLiveBinding / 値の変換後での代入 / ソースのメンテナンス性
C++ Builder XE4
c++ builder > LiveBinding入門してみた
http://qiita.com/7of9/items/72cd03dcaa999ed6ea85
LiveBinding を入門する中で疑問点が出てきた。
Q1. Form間でLiveBinding できないのか?
Unit1のTColorBoxからUnit2のTEditのColorプロパティを変更できないのか?
試しにプロジェクトを作ってみたが、Unit1のLiveBinding デザイナにおいて、Unit2のTEditを足す方法がよくわからない。
Q2. 値を変換して代入できないのか?
値をそのまま代入するLiveBinding はできるが、
y = fnc(x)
のような変換式を通した代入はできないのだろうか?
例えば、切片と傾きを考慮した以下の式を用いてLiveBindingしたい。
y = ax + b
具体例としては、TrackBar1のpositionを使って、Label1のFontSizeを変更する、など。
Q3. ソースのメンテナンス性はどうか?
同じ処理を以下の2つの方法で実装できる場合、どちらが今後メンテナンスしやすいか?
- LiveBindingで実装
- コードで実装
特に、振舞を読取る時にどちらがやりやすいだろうか。
IDEを開けばLiveBindingデザイナから振舞がわかりやすい。しかしながら、デザイン数が増えた時にみやすいかどうか。レイヤーというのはそのための機能なのか。
一方で、エディタ主体でコーディングする時、検索対象に.dfmファイルも含めることになる。
object BindingsList1: TBindingsList
Methods = <>
OutputConverters = <>
Left = 20
Top = 5
object LinkControlToPropertyColor: TLinkControlToProperty
Category = #12463#12452#12483#12463' '#12496#12452#12531#12487#12451#12531#12464
Control = ColorBox1
Track = True
Component = Edit1
ComponentProperty = 'Color'
end
end
同じ処理はソース実装では以下のようになる。
void __fastcall TForm1::ColorBox1Change(TObject *Sender)
{
Edit1->Color = ColorBox1->Selected;
}
Edit1->Colorを変更しているものを検索するとき、エディタなりIDEなりの検索機能で検索した時、LiveBindingでは上記のControlの行からComponentPropertyの行まで(4行分)を見て分かる。
一方で、ソースではEdit1->Color = ColorBox1->Selected;
で読める。
「Edit1->Colorを変更するコンポーネントは何か」を調べたい時、コーディング実装の方が調べやすいかもしれない。
Author And Source
この問題について(2015-12-09 c++ builder > LiveBinding > 3. 疑問点 > Form間のLiveBinding / 値の変換後での代入 / ソースのメンテナンス性), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/4d0421b495143f4ea116著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .