최근 delphi 의 발전에 대해서는 모릅니다. 그래서 inc 등을 쓸 수가 있는지는 모르겠는데, 여튼 그런 거 없이 가장 원초적 문법으로 작성을 하자면,
TYPE
TMyRECord = Packed Record
A : String[10];
B : String[10];
End;
PMyRecord = ^TMyRecord;
procedure TForm1.Button1Click(Sender: TObject);
var
MyRecords : array of PMyRecord;
I: Integer;
begin
for i := 1 to 6 do begin
SetLength(MyRecords, Length(MyRecords) + 1);
New(MyRecords[High(MyRecords)]);
MyRecords[High(MyRecords)].A := 'a' + IntToStr(i);
MyRecords[High(MyRecords)].B := 'b' + IntToStr(i);
end;
for i := Low(MyRecords) to High(MyRecords) do
Memo1.Lines.Add(MyRecords[i].A + ' , ' + MyRecords[i].B);
end;
이게 에러없이 실행된다는 자신은 없네요^^
김하랑 님이 쓰신 글 :
: 포인터에 대해 공부하고 있습니다.
: 아직 개념이 부족해서 그러는데요.
: 아래 코드 좀 완성해 주시면 공부에 많은 도움이 되겠습니다.
: 감사합니다.
:
: TYPE
: TMyRECord = Packed Record
: A : String[10];
: B : String[10];
: End;
: PMyRecord = ^TMyRecord;
:
:
: procedure TForm1.Button1Click(Sender: TObject);
: var
: MyRecord : PMyRecord;
: I: Integer;
: begin
: New(MyRecord);
: MyRecord.A := 'a1';
: MyRecord.B := 'b1';
:
: INC(MyRecord);
: MyRecord.A := 'a2';
: MyRecord.B := 'b2';
:
: INC(MyRecord);
: MyRecord.A := 'a3';
: MyRecord.B := 'b3';
:
: INC(MyRecord);
: MyRecord.A := 'a4';
: MyRecord.B := 'b4';
:
: INC(MyRecord);
: MyRecord.A := 'a5';
: MyRecord.B := 'b5';
:
: INC(MyRecord);
: MyRecord.A := 'a6';
: MyRecord.B := 'b6';
:
: ------ 첫번째 MyRecord로 이동 ----
: FOR i=0 TO MyRecord갯수만큼 DO
: Begin
: Memo1.Lines.Add(MyRecord.A + ' , ' + MyRecord.B);
: Inc(MyRecord);
: End
: end; |