Ver Mensaje Individual
  #2  
Antiguo 07-09-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Por qué no simplemente publicas toda la subcomponente?

Código Delphi [-]
type
  TMiControl = class(TCustomControl)
  private
    FEdit: TEdit;
    procedure SetEdit(Value: TEdit);

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property Edit: TEdit read FEdit write SetEdit;
  end;

implementation

{ TMiControl }

constructor TMiControl.Create(AComponent: TComponent);
begin
  inherited;

  FEdit := TEdit.Create(Self);
  FEdit.Parent := Self;
  FEdit.SetSubComponent(true);
end;

destructor TMiControl.Destroy;
begin
  FEdit.Free;
  inherited;
end;

procedure TMiControl.SetEdit(const Value: TEdit);
begin
  FEdit.Assign(Value);
end;

De esta manera la propiedad Edit aparecerá en el inspector de objetos similar, por ejemplo, a la propiedad Font del formulario: con un + a la izquierda que al expandirlo mostrará todas las propiedades de la componente Edit.

Esto lo acabo de probar en Delphi7. Creo recordar que en Delphi6 había algún problema con SetSubComponent.

// Saludos
Responder Con Cita