Lista rekordów (TList + record)

0

Witam

Mam problem z kompilacją poniższego kodu:

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,Classes;

type
  TTest = class
    type POption = ^TOption;
      TOption = record
        op1:   String;
        op2:   Integer;
      end;

  public
      opcja:  POption;
      listaOpcji: TList;

  procedure AddOption(o1: String; o2: Integer);
end;

procedure TTest.AddOption(o1: String; o2: Integer);
begin
      listaOpcji := TList.Create;
      New(opcja);
      opcja^.op1 := o1;	// Missing operator or semicolon
      opcja^.op2 := o2;
      listaOpcji.Add(pointer(opcja));
end;

var
    test: TTest;
    
begin
    test.AddOption('1', 2,);
end.

W zaznaczonej lini i wlini poniżej kompilator wyświetla błąd 'Missing operator or semicolon'.

W czym jest problem???

Pozdrawiam
DC

0

test.AddOption('1', 2,);

?

0

Troszeczke poprawołem i u mnie na D7 bez problemu się kompiluje.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,Classes;

type
  POption = ^TOption;
  TOption = record
    op1 : String;
    op2 : Integer;
  end;

  TTest = class
  public
    opcja:  POption;
    listaOpcji: TList;
    procedure AddOption(o1: String; o2: Integer);
  end;

procedure TTest.AddOption(o1: String; o2: Integer);
begin
  listaOpcji := TList.Create;
  New(opcja);
  opcja^.op1 := o1;
  opcja^.op2 := o2;
  listaOpcji.Add(pointer(opcja));
end;

var
  test: TTest;

begin
  test := TTest.Create;
  test.AddOption('1', 2,);
  //..
  //..
  //..
  test.Free;
end.
0
type 
  POption = ^TOption;
  TOption = record
    op1:   String;
    op2:   Integer;
  end;

type
  TTest = class
  public
    opcja:  POption;
    listaOpcji: TList;
    procedure AddOption(o1: String; o2: Integer);
  end;
0
volgar napisał(a)

Troszeczke poprawołem i u mnie na D7 bez problemu się kompiluje.

procedure TTest.AddOption(o1: String; o2: Integer);
begin
  listaOpcji := TList.Create;
  New(opcja);
  opcja^.op1 := o1;
  opcja^.op2 := o2;
  listaOpcji.Add(pointer(opcja));
end;

a jaki jest sens tworzenia listy za kazdym razem kiedy dodaje sie wartosc?
poza tym przejrzyj artykuły i poszukaj tablic asocjacyjnych moze one Ci wystarcza.

pzdr.

0
b-dog napisał(a)

a jaki jest sens tworzenia listy za kazdym razem kiedy dodaje sie wartosc?

Masz rację, należało by to poprawić, ale nie zauwarzyłem tego, nie ja to pisałem, a tylko starałem się doprowadzić ten kod do takiego stanu aby kompilował się bezproblemowo.
Pozdrawiam.

P.S Najlepiej chyba będzie tworzyć tę listę w konstruktorze klasy.

0

Dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1