Bonjour,
Est il possible de connaitre en direct lors d'un redimensionement la taille d'une colonne d'une listview ?
Car en faite je veux intégrer des progressbars dans les listviews ...
et j'aimerai qu'elles suivent en direct le redimensionement...
Voila mon code :
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
23
24
25
26
27
28
29
30 procedure TForm1.FormCreate(Sender: TObject); var itm: tlistitem; i: integer; pb: TProgressBar; r: TRect; begin for i := 0 to 6 do begin itm := threads.Items.Add; itm.Caption := inttostr(i); itm.ImageIndex := 0; itm.SubItems.Add(timetostr(now) + ' : En attente ...'); itm.SubItems.Add(''); randomize(); itm.SubItems.Add('0 Ko/sec'); r := threads.Items[i].DisplayRect(drBounds); pb := TProgressBar.Create(Self); pb.Parent := threads; pb.Position := Random(pb.Max); threads.Items[i].Data := pb; AdjustProgressBar(threads.Items[i], r); end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.AdjustProgressBar(item: TListItem; r: TRect); var pb: TProgressBar; begin r.Left := r.Left + threads.columns[0].Width+ threads.columns[1].Width; r.Right := r.Left + threads.columns[2].Width; pb := item.Data; pb.BoundsRect := r; end;A noter
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 procedure TForm1.threadsCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var r: TRect; pb: TProgressBar; begin r := Item.DisplayRect(drBounds); pb := item.data; pb.Top := item.Top; if pb.Top < 10 then pb.Visible := false else pb.visible :=true; // AdjustProgressBar(Item, r); end;
ne donne pas en direct le redimensionnement..
Code : Sélectionner tout - Visualiser dans une fenêtre à part threads.Column[2].Width
Ou alors comment empecher le redimensionnement ?
Merci d'avance
Partager