Einzelnen Beitrag anzeigen

4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#3

AW: [XE10] Designer, Properties bedingt im Inspektor verstecken

  Alt 2. Mai 2016, 13:22
Also die Lösung ist bei mir:
Delphi-Quellcode:
function TSimpleObject_PropertyEditor._PropertyEditorFilterFunc(const ATestEditor: IProperty): Boolean;
begin
  result:=true;
  if ATestEditor.GetName='Daten2then //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.
  Mit Zitat antworten Zitat