Ver Mensaje Individual
  #4  
Antiguo 05-09-2004
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
Cita:
Empezado por Critter
estoy equivocado ?
No. Desafortunadamente la capacidad de tener subcomponentes que puedan guardar sus propiedades en el archivo dfm no apareció sino hasta la versión 6.

Tengo la idea de que es posible hacer lo que quieres pero tendrías que meterte con el proceso de 'streaming' que usa el IDE para leer y guardar propiedades del archivo dfm y esto es complejo.

Si lo único que deseas es poder cambiar en tiempo de diseño el texto de los botones podrías optar por publicar propiedades paralelas en el panel:

Código Delphi [-]
interface

type
  TButtonsPanel = class(TPanel)
  private
    FOkButton: TBitBtn;
    FCancelButton: TBitBtn;

    function GetOkCaption: TCaption;
    function GetCancelCaption: TCaption;

    procedure SetOkCaption(const Value: TCaption);
    procedure SetCancelCaption(const Value: TCaption);

  public
    constructor Create(AOwner: TComponent); override;

  published
    property OkCaption: TCaption read GetOkCaption write SetOkCaption;
    property CancelCaption: TCaption read GetCancelCaption write SetCancelCaption;
  end;

implementation

{ TButtonsPanel }

constructor TButtonsPanel.Create(AOwner: TComponent);
begin
  inherited;

  Width := 105;
  Height := 73;

  FOkButton := TBitBtn.Create(Self);
  FOkButton.Parent := Self;
  FOkButton.Left := 16;
  FOkButton.Top := 8;
  FOkButton.Caption := '&Aceptar';
  FOkButton.Name := 'OkButton';

  FCancelButton := TBitBtn.Create(Self);
  FCancelButton.Parent := Self;
  FCancelButton.Left := 16;
  FCancelButton.Top := 40;
  FCancelButton.Caption := '&Cancelar';
  FCancelButton.Name := 'CancelButton';
end;

function TButtonsPanel.GetOkCaption: TCaption;
begin
  Result := FOkButton.Caption;
end;

function TButtonsPanel.GetCancelCaption: TCaption;
begin
  Result := FCancelButton.Caption
end;

procedure TButtonsPanel.SetOkCaption(const Value: TCaption);
begin
  FOkButton.Caption := Value;
end;

procedure TButtonsPanel.SetCancelCaption(const Value: TCaption);
begin
  FCancelButton.Caption := Value;
end;

end.

Con esto, las propiedades OkCaption y CancelCaption se reflejarán en los textos de los botones ya sea durante el diseño o en ejecución.
// Saludos
Responder Con Cita