Cita:
Empezado por plionut
...
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
