Ver Mensaje Individual
  #10  
Antiguo 06-09-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por plionut Ver Mensaje
...
que pasa con la nueva clase TSpeedButton ? Los dos eventos dejan de ser protected? Puedes desarrolar un poco tu respuesta? Seguro que me resultará más que interesante y útil. Gracias.
Si, las propiedades protegidas serán visibles (desprotegidas) dentro del ámbito de la declaración y tendrán la durabilidad del mismo. Revisa este artículo que desarrolla una explicación muy clara: Accessing protected members of a component.

Notarás que hay una pequeña diferencia entre el artículo y el ejemplo anterior , tomando el artículo quedaría:
Código Delphi [-]
type
  THackSpeedButton = class(TSpeedButton);

  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure Panel1Click(Sender: TObject);
  private
    procedure SpeedButtonDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure SpeedButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
  public
  end;
...

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  THackSpeedButton(SpeedButton1).OnDragDrop := SpeedButtonDragDrop;
  THackSpeedButton(SpeedButton1).OnDragOver := SpeedButtonDragOver;
end;

procedure TForm1.SpeedButtonDragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  TSpeedButton(Sender).Caption := TPanel(Source).Caption;
end;

procedure TForm1.SpeedButtonDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
   Accept := Source is TPanel;
end;

procedure TForm1.Panel1Click(Sender: TObject);
begin
  TPanel(Sender).BeginDrag(True);
end;

También te podría resultar interesante este enlace: Clases interpuestas

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita