Цитата:
Сообщение от Alegun
Оффтоп:
По-русски это значит: и нашим, и вашим
|
вообще, в XE3 появилось что-то типа LiveBinding... может это в ту сторону (сам не проверял, не знаю). Но даже без этого, можно, конечно, извратиться, но придется делать свой тип и компонент. В компоненте надо сделать ссылку на тип и, соответсвенно, при изменении данных в поле ввода, писать в указанную переменную (если назначена). Ну а тип можно сделать типа такого:
Код:
type
TOnStringChange = procedure (Sender : TObject; const Value : String) of object;
TBindedString = class
private
FOnChange : TOnStringChange;
FData : String
procedure Set(Value : String);
public
constructor Create; virtual;
property Data : String read FData write Set; default;
property OnChnage : TOnStringChange read FOnChange write FOnChange;
end;
implementation
constructor TBindedString.Create;
begin
inherited;
FData := '';
FOnChnage := Nil;
end;
procedure TBindedString.Set(Value : String);
begin
If FData <> Value Then
Begin
FData := Value;
If Assigned(FOnChange) Then FOnChange(Self,FData);
End;
end;
что-то типа так. Ну и теперь надо сделать наследника TEdit, который умеет с таким объектом работать. Получится вот такой биндинг