Hola,
Vaya. Es cosa de los permisos de usuario. Sé que no es lo mismo, porque tendrás que hacer un esfuerzo más, pero, aquí está el código fuente del asunto. Tienes que incluirlo en el formulario principal de un proyecto nuevo de Delphi, creo que me entiendes.
Código Delphi
[-]
unit UMainFrm;
interface
uses
Forms, StdCtrls, ExtCtrls, Classes, Controls;
type
TEmbeddedPanel = class(TPanel)
protected
procedure MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
end;
type
TObjectPanel = class(TPanel)
private
FEmbeddedPanel: TEmbeddedPanel;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy(); override;
end;
type
TmainFrm = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FObjectPanel: TObjectPanel;
end;
var
mainFrm: TmainFrm;
implementation
{$R *.dfm}
procedure TEmbeddedPanel.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
inherited;
SetFocus();
end;
constructor TObjectPanel.Create(AOwner: TComponent);
begin
inherited;
FEmbeddedPanel := TEmbeddedPanel.Create(self);
InsertControl(FEmbeddedPanel);
Self.Top := 10;
Self.Left := 10;
Self.Width := 100;
Self.Height := 100;
with FEmbeddedPanel do
begin
Top := 10;
Left := 10;
Width := 50;
Height := 50;
end;
end;
destructor TObjectPanel.Destroy();
begin
FEmbeddedPanel.Free();
inherited;
end;
procedure TmainFrm.FormCreate(Sender: TObject);
begin
FObjectPanel := TObjectPanel.Create(nil);
FObjectPanel.ParentWindow := self.Handle;
end;
procedure TmainFrm.FormDestroy(Sender: TObject);
begin
FObjectPanel.Free();
end;
end.