Salut
j'utilise une progressBar dans mon application. Le probleme, c'est que j'aimerais bien changer la couleur de rmplissage, (avec FILLCOLOR), mais jarrive pas a l'utilser!
QQ1 pour m'expliquer SVP?
merci
jul
Salut
j'utilise une progressBar dans mon application. Le probleme, c'est que j'aimerais bien changer la couleur de rmplissage, (avec FILLCOLOR), mais jarrive pas a l'utilser!
QQ1 pour m'expliquer SVP?
merci
jul
CLX ou VCL???
A premi�re vue (dans ce cas l�, l'aide de Builder), la propri�t� FillColor n'existe pas avec la VCL.
Sinon, avec la CLX, il suffit de changer la valeur comme pour toute propri�t� TColor
S'il y a une autre m�thode, je ne la connais pas.
je sais pas ce que veux dire CLX ou VCL.
Mais quand je creer un TProgressBar (composant en barre d'outil), je n'ai pas acces a la propriete de couleur!
pour savoir ce que c'est :
http://c.developpez.com/faq/bcb/?pag...ntsgeneralites
VCL = composants standards de Builder tir�s de DelphiEnvoy� par cquadjul
CLX = composants de Builder utilis�s avec Kylix pour du Dev sous Linux.
Si tu n'as pas acc�s � cette propri�t� (FillColor), �a signifie que tu utilises la VCL.
Apparemment vous travaillez en CLX car en VCL classique il n'y a pas la propri�t� FillColor.
Quand vous faites Fichier->Nouveau, vous avez le choix entre Application tout court avec la VCL (Visual Componant Library) ou Application CLX.
En principe, si vous cliquez sur FillColor, vous avez le choix de la couleur de remplissage, j'ai essay�, �a marche parfaitement.
� bient�t
Gilles
ok, ba merci qd meme!
si qq1 a une methode pour la VCL?
Il semble que ce soit impossible en VCL, vous pouvez seulement changer la couleur de fond e.g.
mais vous ne pouvez pas modifier le bleu fonc� de remplissage choisi par d�faut.
Code : S�lectionner tout - Visualiser dans une fen�tre � part ProgressBar1->Brush->Color=clRed;
� la limite, �a ne doit pas �tre tr�s difficile la programmer mais le jeu en vaut-il la chandelle comme on dit?
� bient�t
Gilles
ok, merci bcp
bien sur, c'est pas sa qui va changer la performance de mon programme, mais c'etait juste pour savoir comment faire (et si c'etait possible)
merci
@+
jul
Tout est toujours possible mais parfois par des voies d�tourn�es.Envoy� par cquadjul
D�clarez dans la classe principale la fonction de remplissage.
Juste apr�s avoir modifi� la position du ProgressBar, vous appelez la fonction par exemple :
Code : S�lectionner tout - Visualiser dans une fen�tre � part void __fastcall PaintPB(TProgressBar*);
La fonction en elle-m�me peut se programmer ainsi.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 ProgressBar1->Position+=10; PaintPB(ProgressBar1);
Notez qu'on ne peut pas passer par le canvas de Form1 qui ne donne que du noir, on triche en allant lire directement l'�cran. Je n'ai pas trouv� le moyen de savoir les coordonn�es r�elles du progressBar, j'ajuste en ajoutant 5 en x et 31 en Y qui doivent correspondre aux bordures par d�faut. �a aurait �t� plus propre de trouver les coordonn�es avec des vraies variables.
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 void __fastcall TForm1::PaintPB(TProgressBar* PB) { HDC deskTopDC; deskTopDC = GetWindowDC(GetDesktopWindow()) ; int i,j,x,y; int BG,BD; for(i=0;i<PB->Width-2;i++) for(j=0;j<PB->Height-2;j++) { x=i+PB->Left+Form1->Left+5; y=j+PB->Top+Form1->Top+31; if(GetPixel(deskTopDC,x,y)!=PB->Brush->Color) SetPixel(deskTopDC,x,y,clAqua); } }
� bient�t
Gilles
Merci beaucoup GILLES, sa marche tres bien!!!
a bientot
jul
C'est ici.
Code : S�lectionner tout - Visualiser dans une fen�tre � part SendMessage(ProgressBar1->Handle, PBM_SETBARCOLOR, 0, clRed);
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)
Ah yes!!! merci bcp!!!
++
Bravo CGi, �a ne s'invente pas.Envoy� par CGi
J'ai encore d�gain� mon code de d�pannage trop vite.
Merci encore � vous et � bient�t
Gilles
Partager