Question

comment puis-je créer un TCustomControl qui se comportent comme des Tpanel?par exemple MyCustomComponent, que je peux laisser composants comme les labels, les images, etc.

Était-ce utile?

La solution

Le truc, c'est ce bout de code dans TCustomPanel:

constructor TCustomPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := [csAcceptsControls {, ... } ];
//...
end;

Il y a beaucoup plus de contrôles VCL, vous pouvez descendre de qui ont csAcceptsControls dans leur ControlStyle de la propriété.

Si vous voulez faire dans votre propre contrôle, mais ne descendent pas d'un tel contrôle VCL, alors vous devriez faire quelque chose comme ceci:

  1. Remplacer le Créer constructeur
  2. Ajouter csAcceptsControls à l' ControlStyle propriété

Comme cet exemple de code:

//MMWIN:MEMBERSCOPY
unit _MM_Copy_Buffer_;

interface

type
  TMyCustomControl = class(TSomeControl)
  public
    constructor Create(AOwner: TComponent); override;
  end;


implementation

{ TMyCustomControl }

constructor TMyCustomControl.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csAcceptsControls {, ...} ];
//...
end;


end.

--jeroen

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top