일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- winsock
- vb
- 설치
- 초보
- VB.NET
- 셋업
- 파이어버드
- 예제
- Visual Basic
- c#
- MFC
- SDK
- 델파이
- xml
- 소니
- WIN32 SDK
- 시리얼 통신
- 데이터베이스
- Delphi
- dll
- 문자열
- 인스톨
- MySQL
- 입문
- 파라미터
- SQL
- Firebird
- PostgreSQL
- Visual Studio 2005
- 기초
- Today
- Total
프로그래밍 노트
[델파이]Object의 List 사용해 보기(TObjectList) 본문
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Contnrs;
type
// ObjectList에 추가할 Object
TMyObj = class(TObject)
private
FiState : integer;
FsId : string;
FiTemp : integer;
public
function Cal(iTemp: integer): integer;
published
property State : integer read FiState write FiState;
property ID : string read FsId write FsId;
end;
TForm1 = class(TForm)
btnCreate: TButton;
btnAdd: TButton;
Edit1: TEdit;
Memo1: TMemo;
btnObjList: TButton;
procedure btnObjListClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnCreateClick(Sender: TObject);
private
{ Private declarations }
ol : TObjectList; // ObjectList 정의
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TPjObj }
function TMyObj.Cal(iTemp: integer): integer;
begin
result := iTemp * 2;
end;
procedure TForm1.btnCreateClick(Sender: TObject);
begin
// ObjectList 생성
ol := TObjectList.Create(true);
end;
procedure TForm1.btnObjListClick(Sender: TObject);
var
i : integer;
begin
// Object List에 추가한 Object의 Property 표시
for i := 0 to ol.Count - 1 do
memo1.Lines.Add((ol.Items[i]as TMyObj).ID);
end;
procedure TForm1.btnAddClick(Sender: TObject);
var
po : TMyObj;
begin
// Object List에 추가할 Object 생성
po := TMyObj.Create;
po.ID := edit1.Text;
// Object List에 Object 추가
ol.Add(po);
//po.Free; <- Free하면 안됨
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// Object List 개방
ol.Free;
end;
end.
Object List를 사용하려면 Contnrs를 uses에 추가해야 됨
Object List에 추가할 Object를 생성한 후 소멸시키지 않아도 되고
생성한 후 소멸시켜서도 안된다. ^^;;
프로그램이 죽을 때 Object List를 Free해 주면
추가한 모든 Object가 자동으로 소멸되어진다.
ObjectList에 추가한 Object의 Property나 Method를 사용할 때는
위 소스의 TMyObject로 예를들면 아래와 같이 쓸 수 있다.
(ol.Items[i] as TMyObj).ID
TMyObj(ol.Items[i]).ID