LCL: Fix events TField.OnSetText/OnGetText not being called when editing a TDBMemo (new patch by Soner, issue #33498)

git-svn-id: trunk@57598 -
This commit is contained in:
wp 2018-04-03 22:05:58 +00:00
parent e6c02d77d7
commit aef943e544

View File

@ -100,7 +100,12 @@ procedure TDBMemo.UpdateData(Sender: TObject);
begin
if not FDBMemoLoaded then exit;
if not FDataLink.CanModify then exit;
FDataLink.Field.AsString := Text;
// issue #33498: possibility to change field text in OnSetText
if Assigned(FDatalink.Field.OnSetText) then
FDataLink.Field.Text := Text
else
FDataLink.Field.AsString := Text;
end;
constructor TDBMemo.Create(TheOwner: TComponent);
@ -236,7 +241,11 @@ begin
if not FDBMemoLoaded and (FDataLink.Field<>nil)
and FDataLink.Field.IsBlob then begin
try
Lines.Text := FDataLink.Field.AsString;
// issue #33598: Possibility to change field text in OnGetText
if Assigned(FDataLink.Field.OnGetText) then
Lines.Text := FDataLink.Field.Text
else
Lines.Text := FDataLink.Field.AsString;
FDBMemoLoaded:=True;
except
on E:EInvalidOperation do