comment créer un TCustomControl qui se comporte comme Tpanel?
-
17-09-2020 - |
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.
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:
- Remplacer le Créer constructeur
- 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