Einzelnen Beitrag anzeigen

Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#1

Arrays bleiben unverändert - trotz SetLength

  Alt 15. Okt 2009, 17:41
Komisch.

Wenn ich diese Prozedur (aus einer DLL) calle, bleiben "Vars" und "VarNames" exakt gleich. Muss ich die doch als Referenzparameter oder gar als Zeiger übergeben?
Bin jetzt etwas ratlos... in der Proc werden beide Arrays (die ja intern nur Zeiger sein dürften) nämlich verändert, durch ShowMessage ließ sich das beweisen.
Also, ich lasse den Worten Code folgen:
Delphi-Quellcode:
type
  TParamArray=array of Pointer;
  TVarArray=array of PString;

procedure CREATEVAR(Params:TParamArray; Vars, VarNames:TVarArray);
var
  I:integer;
  Param:string;
begin
Param:=string(GetParam(0, Params, Vars, VarNames));
I:=GetVarIndex(Param, VarNames);
if(I=-1)then
  begin
  SetLength(VarNames, Length(VarNames)+1);
  SetLength(Vars, Length(Vars)+1);
  GetMem(VarNames[I], Length(Param));
  VarNames[I]^:=Param;
  end;
end;
Gruß,
LDer.
"Clicking this button you agree with our Verantwortungsverzicht und Abkommen."
Zitat von Ein unentschlossener Programmierer:
Enabled:=true or false or true or false or true or false;
  Mit Zitat antworten Zitat