Bonjour, j'ai un ojet qui contient une liste de record , qui elle même contiens des ojets.
Lorsque je veux la dupliquez tout semble bien se passer, hors j'ai rapidement des EAccesViolation, je pense que cela vien de mon clonage qui duplique bien les champs normaux mais ne duplique mais pas les bjets qu'il réasigne dans l'objet cloné dsans le dupliquer.
Quelqu'un pourrait il m'aider
merci d'avance
Voici 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 TConfigRegistre = Record oid : String; nom_mib : String; designation_registre : String; valeur_reference : Variant; valeurs_actives : String; valeurs_inactives : String; comportement : TComportement; comportements : TListeComportementRegistre; // Mon objet dérivé de TLIST valeur_type : TASN1Type; valeur : Variant; valeur_type_retour: TASN1Type; // Type énuméré deja_alerte : Boolean; end;
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 function TConfigListeRegistre.Clone: TConfigListeRegistre; const STR_PROC = 'TConfigListeRegistre.Clone'; var ConfigListeRegistre : TConfigListeRegistre; ConfigRegistre : pConfigRegistre; i : integer; ListeComportement : TListeComportementRegistre; begin Result := nil; try ConfigListeRegistre := TConfigListeRegistre.Create; for I := 0 to Count - 1 do begin ConfigRegistre := Self[i]; if assigned(TConfigRegistre(Self[i]^).comportements) then begin ListeComportement := ConfigRegistre.comportements.Clone; TConfigRegistre(Self[i]^).comportements := ListeComportement; ListeComportement.onError := ConfigListeRegistre.doError; ListeComportement.OnTrace := ConfigListeRegistre.doTrace; end; ConfigListeRegistre.Ajouter(ConfigRegistre^); end; Result := ConfigListeRegistre; except on E: Exception do DoError (STR_UNITE,STR_PROC,E.Message); end; end;
Partager