TMyObject=class(TObject)
private
FNo: integer;
FName: string;
public
function Calc2x(idx: integer): integer;
property Name: string read FName write FName;
property No: integer read FNo write FNo;
end;
비슷한 형식이지만 자료로의 접근 방식이 조금다르다.
델파이에서는 interface 부분에서 위와같이 선언하고나서 Ctrl+Shift+C 하면 실제 구현(Implementation) 부분에 기본 틀이 만들어 집니다.
Record를 쌓아두는 곳으로 TList가 있었다면
Object 자료를 샇아두는 곳은 TObjectList가 준비되어 있습니다.
procedure TForm2.FormCreate(Sender: TObject);
begin
MyObjectList:= TObjectList.Create;
end;
물론 uses Contnrs 를 삽이하여야합니다.
실제 자료를 생성하고 자료를 접근하기 위하여는 레코드에서 New를 사용하던 식으로
procedure TForm2.btObjectAddClick(Sender: TObject);
var
iMyObject: TMyObject;
begin
iMyObject:= TMyObject.Create;
iMyObject.Name:= Edit1.Text;
iMyObject.No:= Random(65000);
MyObjectList.Add(iMyObject);
end;
하면 됩니다.
사용이 끝난 서재는 간단하게 정리됩니다.
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FreeAndNil(MyObjectList);
end;
또는 MyObjectList.Clear 해도 되겠지요.
자동으로 해제 되지 않게 하기위하여는
MyObjectList.OwnsObjects := False; 하면 됩니다. 기정치는 True 입니다.
다른 방법으로는 생성시
iMyObject:= TMyObject.Create(False); 또는
iMyObject:= TMyObject.Create(True); 하면 됩니다.
iMyObject:= TMyObject.Create(True); 하면 됩니다.
댓글 없음:
댓글 쓰기