Einzelnen Beitrag anzeigen

Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

Frage zu dynamischen Variablen

  Alt 22. Apr 2005, 21:19
hi leute



hab heute angefangen die variablen erstellung in einem selbstgemachten compiler

mach das zum erstenmal

und bekomme schon beim testen nen programmabsturz(AcessViolation)

hier der code...

Delphi-Quellcode:
unit Parse;

interface
 uses Sysutils;

type
  TParse = Class
  constructor Create;
  private
  procedure CreateVar(varT : Variant);
  public
    s : ^String;
    c : ^char;
    i : ^integer;
    r : ^real;
    b : ^boolean;
    arr : array of Variant;

  procedure get_setTyp(command : char;value : Variant); overload;
  procedure get_setTyp(command : char;value : char); overload;

  procedure freeAll;

  end;

implementation


constructor TParse.Create;
begin
  new(i);
  new(r);
  new(b);
  new(S);
  new(c);
end;

procedure TParse.CreateVar(varT : Variant);
begin
  setLength(arr, high(arr)+1);
  arr[high(arr)] := varT;
end;

procedure TParse.freeAll;
begin
  dispose(i);
  dispose(r);
  dispose(b);
  dispose(S);
  dispose(c);

end;

procedure TParse.get_setTyp(command : char; value : Variant);
begin

case command of
's' :
begin
  S^ := value;
  CreateVar(S^);
end;
'i' :
begin
  i^ := value;
  CreateVar(i^);
end;
'r' :
begin
  r^ := value;
  CreateVar(r^);
end;
'b' :
begin
  b^ := value;
  CreateVar(b^);
end;
end;
end;
procedure TParse.get_setTyp(command, value: char);
begin
  c^ := value;
  CreateVar(c^);
end;

end.


aufruf im testprogramm

Delphi-Quellcode:
unit Compiler;

interface
  uses Parse, SysUtils;
implementation
var p : TParse;
begin
  p := TParse.Create();
  p.get_setTyp('s', 'hiii');
  p.freeAll;
end.

könnt ihr mir da helfen?


danke

Nicodius
Nico Müller
  Mit Zitat antworten Zitat