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

Val08000 22 Messages postés mardi 19 avril 2005Date d'inscription 23 octobre 2005 Dernière intervention - 10 juil. 2005 à 14:04 - Dernière réponse : cptpingu 3803 Messages postés dimanche 12 décembre 2004Date d'inscription 18 septembre 2018 Dernière intervention
- 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 

Votre réponse

1 réponse

Meilleure réponse
cptpingu 3803 Messages postés dimanche 12 décembre 2004Date d'inscription 18 septembre 2018 Dernière intervention - 11 juil. 2005 à 02:55
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;

Merci cptpingu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cptpingu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.