नियंत्रण के बीच लाइव बाइंडिंग करना संभव है, यानी 2 संपादन बॉक्स ले लो और एक लेबल में अपनी सामग्री को एक साथ जोड़ने का परिणाम प्राप्त करें। मैं यह है यकीन है कि, मैं बस जहांनियंत्रण के बीच डेल्फी एक्सई 2 और लाइव बाइंडिंग
धन्यवाद
नियंत्रण के बीच लाइव बाइंडिंग करना संभव है, यानी 2 संपादन बॉक्स ले लो और एक लेबल में अपनी सामग्री को एक साथ जोड़ने का परिणाम प्राप्त करें। मैं यह है यकीन है कि, मैं बस जहांनियंत्रण के बीच डेल्फी एक्सई 2 और लाइव बाइंडिंग
धन्यवाद
नमूने पर एक नज़र डालें। SVN भंडार यूआरएल: https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/branches/RadStudio_XE2/LiveBindings
एक उदाहरण:
----- Unit1.dfm -----
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 286
ClientWidth = 426
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 62
Width = 48
Height = 13
Caption = 'Edit1Edit2'
end
object Edit1: TEdit
Left = 8
Top = 8
Width = 121
Height = 21
TabOrder = 0
Text = 'Edit1'
OnChange = EditChange
end
object Edit2: TEdit
Left = 8
Top = 35
Width = 121
Height = 21
TabOrder = 1
Text = 'Edit2'
OnChange = EditChange
end
object BindingsList1: TBindingsList
Methods = <>
OutputConverters = <>
UseAppManager = True
Left = 20
Top = 5
object BindExpressionLabel11: TBindExpression
Category = 'Binding Expressions'
ControlComponent = Label1
SourceComponent = BindScope1
SourceExpression = 'Edit1.Text + Edit2.Text'
ControlExpression = 'Caption'
NotifyOutputs = False
Direction = dirSourceToControl
end
end
object BindScope1: TBindScope
Left = 192
Top = 16
end
end
----- Unit1.pas -----
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.Bind.EngExt, Vcl.Bind.DBEngExt,
System.Rtti, System.Bindings.Outputs, Vcl.Bind.Editors, Data.Bind.Components,
Vcl.StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
BindingsList1: TBindingsList;
BindExpressionLabel11: TBindExpression;
BindScope1: TBindScope;
procedure EditChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
System.Bindings.Helper;
procedure TForm1.EditChange(Sender: TObject);
begin
TBindings.Notify(Sender, 'Text');
end;
end.
आईडीई डिजाइनर का उपयोग कैसे करें परिणाम उपज:
(डिफ़ॉल्ट) पर नमूना परियोजना के स्थान शुरू करने के लिए पता नहीं है:
C:\Users\Public\Documents\RAD Studio\9.0\Samples\Delphi\LiveBinding\Components\bindexpression\fmx\BindExpressionSampleProject.dproj
ठीक है कि नहीं करता है।
बिल्कुल नहीं, यह एक स्रोत और एक नियंत्रण घटक के बीच एक सरल बाध्यकारी दिखाता है। एक अभिव्यक्ति में शामिल दो अलग-अलग स्रोत घटक प्राप्त करने के लिए, मेरा मानना है कि आपको संपादन 1 और संपादन 2 संदर्भों को हल करने के लिए TBindScope घटक की आवश्यकता है। आप SourceComponent को Form1 भी असाइन कर सकते हैं लेकिन वह सभी परिणामों के साथ वैश्विक चर फॉर्म 1 का उपयोग कर रहा है। –
ध्यान दें कि ये डेमो (लाइवबिंडिंग वाले) केवल ईएसडी इंस्टॉल के माध्यम से उपलब्ध हैं। आईएसओ छवि में उन्हें शामिल नहीं है; यदि आप आईएसओ से स्थापित हैं तो आपको अपने जवाब में दिए गए लिंक टेंडरेज पर जाना होगा। –
@ केनहाइट - डेमो भी सबवर्जन लिंक के माध्यम से डाउनलोड करने योग्य हैं: http://sourceforge.net/projects/radstudiodemos/ –
आपको घटक को बाध्य करने के लिए TBindScope की आवश्यकता नहीं है। मान लें कि आपके पास फॉर्म पर संपादन 1 और संपादन 2 है। यदि आप संपादन 2 को संपादित करने के लिए संपादन 2 बाइंडिंग स्रोत सेट करते हैं तो यह संपादित करने के लिए लिंक होगा
वह एक साथ 2 घटकों के गुण जोड़ने के बारे में पूछ रहा था। आपका उत्तर एक घटक की संपत्ति को दूसरे को असाइन करने के बारे में प्रतीत होता है। – chuacw
यह बहुत बढ़िया दिखता है। 'SourceExpression = 'Edit1.Text + Edit2.Text' कैसे संकलित, मूल्यांकन किया गया है या जो भी है? –
@ डेविड: इसमें एक पूर्ण रनटाइम (एक्स्टेंसिबल) अभिव्यक्ति मूल्यांकन इंजन शामिल है। –
ओह जो रोमांचक लगता है! –