Bonjour à tous,

Dans le cadre d'un relooking de l'appli sur laquelle je bosse, on prend le parti de lâcher le 3D des différents composants.

Il m'en reste un qui me pose problème : TBitBtn.

Pour traiter les TButton, j'ai utilisé le code suivant :

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
 
procedure TForm1.Flatten(theControl: TWinControl);
var
   dwStyle: Longint;
begin
     dwStyle := GetWindowLong(theControl.handle, GWL_STYLE) or BS_FLAT;
     SetWindowLong(theControl.Handle, GWL_STYLE, dwStyle);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var 
  i : Integer;
begin
  for i := 0 to Self.ComponentCount -1 do
  begin
    if (Self.Components[i] is TButton)
    or (Self.Components[i] is TBitBtn)then
      Flatten(Self.Components[i] as TWinControl);
  end;
Cela marche bien pour les composants TButton (en thème Windows classique) mais ne fait strictement rien sur le TBitBtn.

J'aurais donc deux questions :
. Dans la mesure où ces deux composants ont les mêmes héritages, pourquoi cela ne fonctionne que pour l'un d'entre eux ?
. Sauriez-vous comment rendre le TBitBtn plat ?

Merci.