Bonjour à tous,


Mon probème est simple (à expliquer) :
Je veux "transformer" une liste l'objet en un tableau dynamique de record (chaque record représentant 1 objet de ma liste).

voila tout bêtement ce que j'ai fait :

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
 
TObjectRecord = record
  a : integer;
  b: string;
end;
 
procedure TObjectList.ExportAsRecord(var TabObjectRecord : Array of TObjectRecord);
var
  i : integer;
begin
  // Allocation du tableau de record
  SetLength(TabObjectRecord, Self.Count);
 
  // Recopie des données concernant la liste d'objet dans le tableau de record
  for i:= 0 to Pred(Self.Count) do
  begin
    TabObjectRecord[i].a := Self[i].propertyA;
    TabObjectRecord[i].b := Self[i].propertyb;
  end;
end;

et là il ne veux pas compiler au SetLength, il me met "Types incompatibles"

Y aurait-il une méthode qui évite de passer par des Tableaux de Pointers de record ? (quelque peut lourd à utiliser avec les "tab[i]^" )

Merci