Bonjour,
Comment afficher une progress bar dynamique dans un TListItem.
Un peu comme emule le fait?
Merci
Bonjour,
Comment afficher une progress bar dynamique dans un TListItem.
Un peu comme emule le fait?
Merci
Bonjour,
Une petite proposition...Non pas avec un vrai ProgressBar, mais avec le dessin dans la zone du TListItem.
Dans le cas ci dessous, je lance un TTimer, mais il faudra tester et adapter en fonction de tes besoins.
' LVstb ' correspond simplement au nom de la TListView utilisée...
Dans le .h de la fiche
Dans le .cpp de la fiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private: // Déclarations de l'utilisateur TListItem *pItem; int Decal;
En espérant t'aider,
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
20
21
22 void __fastcall TForm3::Button6Click(TObject *Sender) { pItem = LVstb->Items->Item[0]; Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm3::Timer1Timer(TObject *Sender) { Decal++; TRect rect, arect; rect = pItem->DisplayRect(drLabel); arect.top = rect.top; arect.bottom = rect.bottom; arect.left = rect.left; arect.right = rect.left + Decal; LVstb->Canvas->Brush->Color = clRed; LVstb->Canvas->FillRect(arect); } //---------------------------------------------------------------------------
@+![]()
Merci c'est déjà un bon début!!!
Comment faire pour que cette progressBar s'affiche dans une autre colonne que la première? Exemple sur la 6ème?
Bonjour,
Désolé, je n'aurais pas accès a un bout de Borland de la journée.
Donc je jette un oeil ce soir.
En attendant, il faudrait regarder du côté des SubItems et cie (mas pas sur)
Bon courage,
@ +![]()
J'ai regardé mais en vain car je ne maitrise pas trop la class TCanvas...
Je vais attendre alorsmerci
Bonsoir,
Faut fouiner ....
Donc ci joint juste une proposition, ya peut être plus 'propre':
Et cela rempli la troisième colonne de la première ligne.
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
20
21 void __fastcall TForm3::Button6Click(TObject *Sender) { pItem = LVstb->Items->Item[0]; Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm3::Timer1Timer(TObject *Sender) { Decal++; TRect rect, arect; rect = pItem->DisplayRect(drLabel); arect.top = rect.top; arect.bottom = rect.bottom; arect.left = ( LVstb->Columns->Items[0]->Width + LVstb->Columns->Items[1]->Width ); arect.right = arect.left + Decal; LVstb->Canvas->Brush->Color = clRed; LVstb->Canvas->FillRect(arect); }
En espérant t'aider,
@+![]()
Ok je tests ça mais du coup c une astuce, que se passe-t-il si on modifie la taille des champs?
En tout cas c quand même un moyen relativement simple d'afficher une progression, est-elle professionnelle?
Salut,
Je vais peut-etre dire une bétise, mais pourquoi ne pas essayer de mettre une progressBar dans ton TListView. Il y a un exemple de code pour mettre une TProgressBar dans un TStatusBar, alors tu pourrais essayer de faire la même chose.
Voici le bout de code de la rubrique Trucs et Astuces pour la TStatusBar :
Ca vaut peut-etre le coup d'essayer. Tu adaptes bien sur ce code à tes besoins.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void __fastcall TForm1::FormCreate(TObject *Sender) { StatusBar1->ControlStyle = StatusBar1->ControlStyle << csAcceptsControls ; ProgressBar1->Left = 0; ProgressBar1->Top = 2; ProgressBar1->Parent = StatusBar1; }
Bonjour,
Tant que le calcul des coordonnées du TRect sont situées dans l'évènement du TTimer, il n'y a pas de problème au redimensionnement des champs, j'ai testé.
Pour ce qui est de la dernière question, je ne sais quoi répondre ( -> est-elle professionnelle? ). Qu'est ce qui est 'pro' ou pas .... ? Ca pourrait être un bon débat de la taverne, ça. Non ?
En tout cas, si tu veux que je te rassure, de mon côté je ne sais pas si on peut me qualifier de 'professionnel' car même si je suis censé être payé dans un proche avenir (dans 10 jours ! youpi !) pour ça, je n'ai fait aucune études .... donc, prends garde!![]()
Partager