Also die Lösung ist bei mir:
Delphi-Quellcode:
function TSimpleObject_PropertyEditor._PropertyEditorFilterFunc(const ATestEditor: IProperty): Boolean;
begin
result:=true;
if ATestEditor.GetName='Daten2' then //name des properties das bedingt vesteckt werden soll...
if not GetSimpleObject.Show then //soll das property angezeigt werden oder nicht...
result:=false;
end;
procedure TSimpleObject_PropertyEditor.GetProperties(Proc: TGetPropProc);
var
I: Integer;
J: Integer;
Components: IDesignerSelections;
begin
Components := TDesignerSelections.Create;
for I := 0 to PropCount - 1 do
begin
J := GetOrdValueAt(I);
if J <> 0 then
Components.Add(TComponent(GetOrdValueAt(I)));
end;
// showmessage(inttostr(Components.Count));
if Components.Count > 0 then
GetComponentProperties(Components, tkProperties, Designer, Proc,_PropertyEditorFilterFunc);
end;
function TSimpleObject_PropertyEditor.GetSimpleObject: TSimpleObject;
begin
if GetOrdValue <> 0 then
begin
Result := TSimpleObject(GetOrdValue);
end
else
begin
Result := nil;
end;
end;
funktioniert generell,
Aber nachdem die Bedingung gesetzt ist, muss man im Designer einmal das Object verlassen und wieder öffnen,
damit
GetProperties erneut aufgerufen wird.