Einzelnen Beitrag anzeigen

4dk2

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

AW: Eigene Komponente im Designer Verstecken

  Alt 17. Okt 2017, 12:59
Jup ist von TComponent,
bei SetSubComponent(true), erzeugt er nix mehr im Quelltext und formular.

habs mal als mini Test zusammengepackt, beim klicken auf "..." beim property DummyAdd legt er die an.
Ich weiss das da grade der Bezug von der neuen Komponente zum Master fehlt, zum testen für euch hab ich alles weg gelassen



Delphi-Quellcode:
Type
  TTestComp=class(TComponent)
  private
    FWert: string;
    published
      property Wert:string read FWert write FWert;
  end;


  TTestCompMaster=class(TComponent)
  private
    FDummyAdd: string;
    published
      property DummyAdd:string read FDummyAdd write FDummyAdd;
  end;

//......
//aus register...

procedure Register;
begin
  RegisterComponents('DPTest', [TTestComp]);
  RegisterComponents('DPTest', [TTestCompMaster]);
  RegisterPropertyEditor(TypeInfo(string),TTestCompMaster,'DummyAdd',TTcTest_PropertyEditor);
end;

procedure TTcTest_PropertyEditor.Edit;
var tc:TComponent;
begin
 // Showmessage('EDIT');

  if GetComponent(0) is TComponent then
    tc:=TTestCompMaster(GetComponent(0));

  if not Assigned(tc) then exit;

  if tc.Owner is TForm then
    with TTestComp.Create(tc.Owner) do
    begin
      //SetSubComponent(true);
      Name:=GetUniqueName(Owner,ClassName);
    end;


 // Showmessage('EDIT ENDE');
end;
Angehängte Dateien
Dateityp: zip Beispiel.zip (14,8 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat