Einzelnen Beitrag anzeigen

Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#1

Array einer Klasse (TRemotable) an procedure geben

  Alt 28. Okt 2013, 10:03
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.
  Mit Zitat antworten Zitat