Ver Mensaje Individual
  #16  
Antiguo 15-01-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 Descendents
No se.Haber si alguien seria tan amable de hacer un pequeño componente muy pequeño que lo unico que haga sea crar dos componentes a partir de uno y que cuando se cierre el programa no de todos esos errores.
Vamos a ver. Intenta este:

Código:
unit EditEx;

interface

uses
  SysUtils, Classes, Controls, StdCtrls;

type
  TEditEx = class(TEdit)
  private
    FBoton: TButton;

  protected
    procedure SetParent(AParent: TWinControl); override;
    procedure Notification(AComponent: TComponent;
      AOperation: TOperation); override;

  public
    constructor Create(AOwner: TComponent); override;

  published
    property Boton: TButton read FBoton;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TEditEx]);
end;

constructor TEditEx.Create;
begin
  inherited;

  FBoton := TButton.Create(Self);
  FBoton.FreeNotification(Self);
end;

procedure TEditEx.SetParent(AParent: TWinControl);
begin
  inherited;

  if Assigned(FBoton) then
    FBoton.Parent := AParent;
end;

procedure TEditEx.Notification(AComponent: TComponent; AOperation: TOperation);
begin
  inherited;

  if (AComponent = FBoton) and (AOperation = opRemove) then
    FBoton := nil;
end;

end.
Al parecer no me marca ningún error.

Claro que verás que aunque puedes modificar las propiedades del botón en el inspector de objetos, no puedes moverlo, ni siquiera seleccionarlo en el formulario mediante el ratón. Dependiendo de lo que desees quizá te convenga fijarte con más detalle en la implementación de TLabeledEdit para lograr que el botón se mueva junto con tu Edit.

// Saludos
Responder Con Cita