Bonjour,
suite à la constation d'un bug depuis la version 10.4.2 que j'ai rapporté ici https://quality.embarcadero.com/browse/RSP-33360 et qui a empiré avec D11 (c'est carrément le PC qui freeze) j'ai tenté de créer un programme de démonstration légérement différent, l'objectif étant de trouver quand cela plante.
je suis parti sur l'idée de créer le lien (ou plutôt l'expression) avec l'image au runtime
seulement, si cela ne fonctionne pas toujours
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 procedure TForm13.SwitchAddImageSwitch(Sender: TObject); procedure addimage; var ABind : TFormatExpressionItem; begin aBind:=Link2ListView.FillExpressions.AddExpression; aBind.ControlMemberName:='Image'; aBind.SourceMemberName:='Graphic'; // Showmessage(aBind.Index.ToString); ok c'est bien 2 end; procedure dropimage; begin Link2ListView.FillExpressions.Delete(2); end; begin ListView1.BeginUpdate; if SwitchAddImage.ischecked then addimage else dropimage; SwitchOpenSwitch(Sender); // Listview1.EndUpdate; end; procedure TForm13.SwitchOpenSwitch(Sender: TObject); begin ListView1.BeginUpdate; ClientDataset1.Active:=False; ClientDataset1.Active:=SwitchOpen.IsChecked; ListView1.EndUpdate; end;
dans cette première capture j'ai mis le switch addimage avant d'ouvrir la tableça fonctionne et le resize aussi
Mais
si j'enlève l'image (toujours ok) puis tente de la remettre et là message d'erreur
J'ai certainement oublié un beginUpdate/endupdate quelque part mais sur quoi ?
A noter que dans ces cas là le resize fonctionne
Partager