![]() |
[XE10] Designer, Properties bedingt im Inspektor verstecken
Guten Morgen zusammen,
gibt es eine Möglichkeit per TPropertyEditor oder TComponentEditor (oder andere), Properties bedingt im Inspektor zu verstecken? z.b.
Delphi-Quellcode:
Ich würd jetzt gerne z.b. wenn Bedingung=1 ist BedingtAnzeigen im Objekt-Inspektor verstecken.
type
TCompTest=class(TComponent) private FBedingung:Integer; FBedingtAnzeigen:String; published property Bedingung:Integer read FBedingung write FBedingung; property BedingtAnzeigen:string read FBedingtAnzeigen write FBedingtAnzeigen; end; Geht das? :) |
AW: [XE10] Designer, Properties bedingt im Inspektor verstecken
Hallo,
ja das geht mit dem "UnlistPublishedProperty" aus der Unit DesignIntf. Gruß Robert |
AW: [XE10] Designer, Properties bedingt im Inspektor verstecken
Also die Lösung ist bei mir:
Delphi-Quellcode:
funktioniert generell,
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; Aber nachdem die Bedingung gesetzt ist, muss man im Designer einmal das Object verlassen und wieder öffnen, damit GetProperties erneut aufgerufen wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz