Hola.
Los eventos
OnDragDrop y
OnDragOver estan declarados en la seccion
protected de la clase
TControl de la que deriva
TSpeedButton, para usarlos tendrías que desproteger la clase
TSpeedButton.
Un ejemplo:
Código Delphi
[-]
...
type
TSpeedButton = class(Buttons.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
SpeedButton1.OnDragDrop := SpeedButtonDragDrop;
SpeedButton1.OnDragOver := SpeedButtonDragOver;
end;
procedure TForm1.SpeedButtonDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := Source is TPanel;
end;
procedure TForm1.SpeedButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
TSpeedButton(Sender).Caption := TPanel(Source).Caption;
end;
procedure TForm1.Panel1Click(Sender: TObject);
begin
TPanel(Sender).BeginDrag(True);
end;
Saludos