GetStrValue возвращает пустую строку в Custom Property Editor


3

Свойство SQL является свойством TStrings, а не строковым свойством, а GetStrValue работает только с строковыми свойствами, и если выбрано более одного компонента, оно возвращает значение GetComponent (0). GetStrValue - это виртуальное свойство, поэтому вы можете реализовать свои собственные.

Вот что я имею в виду:

type
  TQuerySqlProperty = ...
  public
    function GetStrValue : string; override;
    ...
  end;
  ...

function TQuerySqlProperty.GetStrValue : string;
begin
  if GetComponent(0) is TEJsonQuery then
  begin
    Result := (GetComponent(0) as TEJsonQuery ).SQL.Text;
  end
  else
  begin
    Result := inherited;
  end;
end;
Дельфи, Дельфи-10,1-берлин, PropertyEditor, PropertyEditor,

delphi,delphi-10.1-berlin,propertyeditor,property-editor,

0

Ответов: 1


3

Свойство SQL является свойством TStrings, а не строковым свойством, а GetStrValue работает только с строковыми свойствами, и если выбрано более одного компонента, оно возвращает значение GetComponent (0). GetStrValue - это виртуальное свойство, поэтому вы можете реализовать свои собственные.

Вот что я имею в виду:

type
  TQuerySqlProperty = ...
  public
    function GetStrValue : string; override;
    ...
  end;
  ...

function TQuerySqlProperty.GetStrValue : string;
begin
  if GetComponent(0) is TEJsonQuery then
  begin
    Result := (GetComponent(0) as TEJsonQuery ).SQL.Text;
  end
  else
  begin
    Result := inherited;
  end;
end;
Дельфи, Дельфи-10,1-берлин, PropertyEditor, PropertyEditor,