Merged revision(s) 56942 #3886b2f185 from trunk:

IDE: PropertyEditor: Fixed components with published properties of type "interface" does not work. Issue #32919. Patch by Andi Friess
........

git-svn-id: branches/fixes_1_8@56985 -
This commit is contained in:
maxim 2018-01-06 13:17:33 +00:00
parent 915a923604
commit 217d1b169c

View File

@ -743,6 +743,7 @@ type
function GetSelections: TPersistentSelectionList; override;
public
function AllEqual: Boolean; override;
function GetAttributes: TPropertyAttributes; override;
procedure GetValues(Proc: TGetStrProc); override;
procedure SetValue(const NewValue: string); override;
function GetValue: AnsiString; override;
@ -5097,6 +5098,17 @@ begin
Result := True;
end;
function TInterfacePropertyEditor.GetAttributes: TPropertyAttributes;
begin
Result := [paMultiSelect];
if Assigned(GetPropInfo^.SetProc) then
Result := Result + [paValueList, paSortList, paRevertable, paVolatileSubProperties]
else
Result := Result + [paReadOnly];
if GReferenceExpandable and (GetComponentReference <> nil) and AllEqual then
Result := Result + [paSubProperties];
end;
function TInterfacePropertyEditor.GetComponent(const AInterface: IInterface): TComponent;
var
ComponentRef: IInterfaceComponentReference;