Bonjour,

J'ai un souci dans mon programme et je n'arrive pas à utiliser
les tableaux (arrays) car j'ai une erreur sur violation d'accès
à chaque fois que je veux dimensionner Ptab1^.

J'ai utilisé SetLength(Ptab1^,0) pour initialiser, cela ne marche pas,
idem quand j'essaie de remplir les champs dans un array.

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
 
Ttab1 = record
	id_PTxt: string;
    id_DefIndex: string;
    sDefIndex: string;
    id_SubIndex: string;
    sSubIndex: string;
    valSubIndex: string;
end;
 
PPTxt = ^Ttab1;
TabIPTxt = Array of Ttab1;
PPTxts = ^TabIPTxt;
 
var
  sValEnv,sTxtEnvoi,sValEnv2,sTxtEnvoi2,elt,idPTxt,parSel:string;
  iPT,CptPT:integer;
  Ptab1: PPTxts;
 
Begin
CptPT := 0;
Repeat
    With Ptab1^[CptPT+1] Do
    Begin
		id_PTxt:=form1.StringGrid5.cells[0,iPT];
        id_DefIndex:=form1.StringGrid5.cells[1,iPT];
        sDefIndex:=form1.StringGrid5.cells[2,iPT];
        id_SubIndex:=form1.StringGrid5.cells[1,iPT];
        sSubIndex:=form1.StringGrid5.cells[1,iPT];
        alSubIndex:=form1.StringGrid5.cells[1,iPT];
    End;
 
    elt := stringgrid5.cells[6,iPT]+' : '+stringgrid5.cells[5,iPT];
    form2.ComboBox1.AddItem(elt,Sender);
    inc(iPT,1);
    inc(CptPT,1);
Until(form1.stringgrid5.cells[0,iPT]<>idPtab1);
L'erreur intervient à la ligne "With Ptab1^[CptPT+1] Do"

Pouvez-vous m'apporter votre aide svp ?

Merci.