Bonjour,

voici le probleme que je n'arrive pas à résoudre
Je créer un TPageControl avec 2 Tabsheet
je mets true dans OwnerDraw, ce qui me permet de redessiner le TpageControl et plus particulierement les etiquettes des tabsheet.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
procedure TFormPrincipal.PageControlPrincipalDrawTab(
  Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect;
  Active: Boolean);
begin
  Degrader(PageControlPrincipal.Canvas,Rect,clcream,$0084DAFF);
  Brush.Style := bsClear;
  DrawText(PageControlPrincipal.Handle, Pchar(PageControlPrincipal.Pages[Tabindex].caption),-1, Rect, DT_CENTER or DT_NOPREFIX or DT_VCENTER or DT_SINGLELINE);
 
end;
Mais la j'ai une erreur :Constant Objet cannot be passed as var parameter au niveau du Rect de Drawtext
Alors j'ai essayé cela

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
procedure TFormPrincipal.PageControlPrincipalDrawTab(
  Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect;
  Active: Boolean);
Var
  Etiquette: Trect;
begin
  Degrader(PageControlPrincipal.Canvas,Rect,clcream,$0084DAFF);
  PageControlPrincipal.Canvas.Brush.Style := bsClear;
 
  Etiquette.Left := PageControlPrincipal.Pages[Tabindex].Left;
  Etiquette.Top := PageControlPrincipal.Pages[Tabindex].Top;
 
  DrawText(PageControlPrincipal.Handle, Pchar(PageControlPrincipal.Pages[Tabindex].caption),-1, Etiquette, DT_CENTER or DT_NOPREFIX or DT_VCENTER or DT_SINGLELINE);
end;
end;
Alors j'ai plus d'erreur mais il ne m'écris pas mon caption, j'ai que le dégradé.

Ou je fais l'erreur ? pouvez-vous m'aider