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.
Nom : Capture.PNG
Affichages : 147
Taille : 73,5 Ko

je suis parti sur l'idée de créer le lien (ou plutôt l'expression) avec l'image au runtime
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;
seulement, si cela ne fonctionne pas toujours
Nom : Capture_1.PNG
Affichages : 128
Taille : 44,0 Ko
dans cette première capture j'ai mis le switch addimage avant d'ouvrir la table ça fonctionne et le resize aussi
Nom : Capture_3.PNG
Affichages : 131
Taille : 35,0 Ko

Mais
Nom : Capture_2.PNG
Affichages : 132
Taille : 16,1 Ko
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