Hallo Delphianer,
ich hab wieder mal ein (Verständnis)Problem, wie man einer Procedure ein Array einer Klasse übergeben kann...
Das hab ich (und es funktioniert auch, wobei es wurst ist ob ichs mittels for i löse oder for xy in):
Code:
procedure Kill_aUPD; //Befreit den Speicher von aUPD...
var
upd: Update; //Klasse Update
begin
for upd in aUpd do upd.Destroy; //aUPD = Array of Update
setLength(aUpd,0);
end;
procedure Kill_aArt; //Befreit den Speicher von aArt
var
art: Article; //Klassse Artikel
begin
for art in aArt do art.Destroy; //aART = Array of Artikel
setLength(aArt,0);
end;
Diese (einzelnen) Routinen gibts für ca. 20 verschiedene Arrays, die sich eben nur durch den Inhalt, sprich - welche Klasse da reinkommt - unterscheidet. Können Artikel, Belege, Adressen, Gruppen, Updates etc. etc. sein...
Und - um das ganze schicker und wartbarer zu gestalten dacht ich mir: Schreibssu eine proc...
Da ich hier auch noch den Typ der Klasse (also Article oder Update übergeben müsste hab ich mir gedacht, machstes mit for i...
Code:
procedure OXKill(aA: xyType); //Befreit den Speicher von einem beliebigen Array
var
i: integer; //Schelfchenvariable
begin
for I := low(aA to high(aA) do aA[i].Destroy,
setLength(aA,0);
end;
Da fehlt mir irgendwie der Plan, wie ich dann mittels
Code:
OXKill(aUpd);
OXKill(aArt);
ein beliebiges Array übergeben kann, damit das übergebene Array von Klasse XY platt ist...
Was muss ich als xyType angeben, damit der Compiler mich versteht und net so bockig ist mir Typverwechslungen zu unterstellen??? Da's wie in letzter Zeit fast immer um das unselige OXID Webservice geht sind die Klassen TRemotable (falls das wichtig ist).
Danke und GLG,
Erwin J.