Bonjour à toutes et à tous,

A partir d'un TGraphicControl, j'ai créé un composant TBoutonCoinRond qui n'est autre qu'un joli cadre dessiné avec TBGRABitmap et à qui j'ai affecté les deux procédures parentes MousDown et MouseUp. Cela fonctionne très bien.

Maintenant, je voudrais créer un nouveau composant à partir de mon TBoutonCoinRond sur lequel je souhaite ajouter un TEdit. Tout ça pour avoir un TEDit avec un joli cadre.

Et là, je tourne en rond, je patauge, je n'arrive pas à positionner le TEdit dans mon cadre, il se positionne par rapport à la fenêtre dans laquelle je dépose mon composant. Voilà le code que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
type
  TEditeurCoinRond = class(TBoutonCoinRond)
  private
    Editeur: TEdit;
  protected
 
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
 
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
  {$I editeurarrondi_icon.lrs}
  RegisterComponents('ChP',[TEditeurCoinRond]);
end;
 
constructor TEditeurCoinRond.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Editeur:= TEdit.Create(AOwner);
  Editeur.Parent:= TWinControl(Self.Parent);
  Editeur.AutoSize:= False;
  Editeur.Left:= Left+18;
  Editeur.Top:= Top+4;
  Editeur.Width:= Width-36;
  Editeur.Height:= Height-8;
end;
 
destructor TEditeurCoinRond.Destroy;
begin
  Editeur.Free;
  inherited Destroy;
end;
 
end.
J'ai essayé pour la création, le parent, les positions et tailles d'utiliser Aowner, Parent, Self, ... Je n'arrive à rien, je tourne en rond.

Question : est-ce ce que je veux faire est réalisable et si oui, comment faire ?

NOTA : le composant TBoutonCoinRond : BoutonCoinRond.zip

Cordialement.

Pierre.