diff --git a/ide/customformeditor.pp b/ide/customformeditor.pp index 3198805eb1..b8f6fb0b5d 100644 --- a/ide/customformeditor.pp +++ b/ide/customformeditor.pp @@ -2266,7 +2266,7 @@ procedure TCustomFormEditor.JITListPropertyNotFound(Sender: TObject; var Index: Integer; begin - Index := RemovedProperties.IndexOf(TPersistentClass(Instance.ClassType), PropName); + Index := RemovedProperties.IndexOf(Instance, PropName); if Index >= 0 then begin Skip := True; diff --git a/lcl/lresources.pp b/lcl/lresources.pp index 9046058010..47cbf006cf 100644 --- a/lcl/lresources.pp +++ b/lcl/lresources.pp @@ -368,7 +368,8 @@ type procedure DoPropertyNotFound(Reader: TReader; Instance: TPersistent; var PropName: string; IsPath: boolean; var Handled, Skip: Boolean); public - function IndexOf(AClass: TPersistentClass; APropertyName: String): Integer; + function IndexOf(AInstance: TPersistent; APropertyName: String): Integer; overload; + function IndexOf(AClass: TPersistentClass; APropertyName: String): Integer; overload; function Add(APersistentClass: TPersistentClass; APropertyName, ANote, AHelpKeyWord: string): Integer; reintroduce; property Items[AIndex: Integer]: PRemovedProperty read GetItem write SetItem; @@ -569,10 +570,19 @@ end; procedure TRemovedPropertyList.DoPropertyNotFound(Reader: TReader; Instance: TPersistent; var PropName: string; IsPath: boolean; var Handled, Skip: Boolean); begin - Skip := IndexOf(TPersistentClass(Instance.ClassType), PropName) >= 0; + Skip := IndexOf(Instance, PropName) >= 0; Handled := Skip; end; +function TRemovedPropertyList.IndexOf(AInstance: TPersistent; + APropertyName: String): Integer; +begin + if AInstance <> nil then + Result := IndexOf(TPersistentClass(AInstance.ClassType), APropertyName) + else + Result := -1; +end; + function TRemovedPropertyList.IndexOf(AClass: TPersistentClass; APropertyName: String): Integer; var