Dans une unite j'avais une procedure avec un tableau dynamique en paramêtre (passage du pointeur du tableau sans le out, puisque les tab dyna sont des pointeurs)
Cela fonctionne trés bien.
--------------------------------------------
implementation
{$R *.dfm}
type
Block = record // Type Block
VDebut : integer;
Vfin : integer;
end;
TBlockArray = Array of Block; // Type Tableau dynamique de Block
var
TabBlock : TBlockArray; // Tab dynamique de block
procedure InsertBlock(ValDebut, ValFin : integer; Tableau_Des_Block : TBlockArray);
begin
// Ajout du nouveau Block en fin de tableau
SetLength(Tableau_Des_Block,Length(Tableau_Des_Block) + 1);
Tableau_Des_Block[ High(Tableau_Des_Block) ].VDebut := ValDebut;
Tableau_Des_Block[ High(Tableau_Des_Block) ].Vfin := ValFin;
.../...
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//Init des blocs
J'ai voulu déplacer toutes la gestion des block dans une unité planning (voir ci-dessous)
J'ai donc ajouter planning dans les uses de l'unit1, mais le passage du tableau ne fonctionne plus.
J'ai donc dans un deuxieme temps modifier la declaration de la fonction pour forcer le passage du pointeur sur le tableau
comme ceci : procedure InsertBlock(ValDebut, ValFin : integer; OUT Tableau_Des_Block : TBlockArray);
Mais là c'est seulement le dernier appel à InsertBlock qui est pris en compte ! Problème de portée des variables sans doute, mais je ne comprend pas.
Merci de votre aide.
unit Planning;
interface
type
Block = record
VDebut : integer;
Vfin : integer;
end;
TBlockArray = Array of Block; // Type Tableu dynamique de Block