Couleur Panel dans une Page Control avec le style XP ? [Résolu]

Messages postés
22
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
23 octobre 2005
- - Dernière réponse : cptpingu
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
- 11 juil. 2005 à 02:55
Bonjour,
Je suis en train de programmer avec comme uses supplémentaires le "XPMan" afin de donner le style XP à mon programme !
Je crée des panels dans une PageControl et lorsque je lance mon application, je remarque que la couleur du Panel n'est pas la couleur que j'ai souhaté mais est blanche avec deux traits plus foncés sur les bords droit et inférieur !
Je voudrais savoir comment mettre un panel en une certaine couleur dans une pagecontrol.
Merci !

Val08000
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
3
Merci
J'ai déjà eu ce probleme, mais je n'ai moi même pas trouvé.



Tu peux contourner le problème:

- Créez ou utilise un composant qui fait cela. (Regarde les composants
de Mauricio, il te permettent même de faire des dégradés de couleur)

- Ou dessine un panel sur le canvas. (C'est pas génial, mais ca peut dépanner).



Pour dessiner un panel utilise ceci:



Procedure DessinerPanel(HWD:TCanvas;Color:TColor;Left,Top,Width,Height:integer);

var

I:integer;

begin

// Bord gauche-haut

HWD.Pen.Color:= clBtnHighlight;

HWD.MoveTo(Left,Top);

HWD.LineTo(Left+Width,Top);

HWD.MoveTo(Left,Top);

HWD.LineTo(Left,Top+Height);

// Bord droite-bas

HWD.Pen.Color:=clBtnShadow;

HWD.MoveTo(Left+Width-1,Top+Height-1);

HWD.LineTo(Left,Top+Height-1);

HWD.MoveTo(Left+Width-1,Top+Height-1);

HWD.LineTo(Left+Width-1,Top);

// Panel

HWD.Pen.Color:=Color;

For I: =Top+1 to Top+Height-2 do

begin

HWD.MoveTo(Left+1,I);

HWD.LineTo(Left+Width-1,I);

end;

end;



Tu peux l'utiliser comme ceci:



procedure TForm1.Button1Click(Sender: TObject);

begin

DessinerPanel(Form1.Canvas,$000000,10,10,20,40);

DessinerPanel(Form1.Canvas,clRed,50,40,100,200);

DessinerPanel(Form1.Canvas,Form1.Color,180,70,200,300);

end;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu