안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당 임펠리테리입니다.
빌더에서는 새로운 어플리케이션 프로젝트를 생성하면 자동으로 생성자를 만들어
주지만, 델파이에서는 생성자를 만들어주지 않습니다. 빌더는 C++ 툴이므로
생성자는 클래스이름과 같은 함수가 되지만, 델파이의 오브젝트 파스칼에서는
생성자 이름은 무조건 Create입니다. 그리고 생성자는 반드시 override 키워드로
지정해줘야 합니다.
먼저, interface 부분의 public 섹션에 생성자의 선언을 추가합니다.
public
constructor Create(AOwner: TComponent); override;
그리고, 생성자 함수의 바디...
constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
inherited Create(AOwner) 부분을 반드시 추가해줘야 합니다. C++에서는 다음과
같은 형식으로 베이스클래스의 생성자를 호출해주지만...
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner) // ---> 이 라인이 베이스클래스의 생성자 호출부분!
델파이의 문법에서는 명시적으로 inherited 키워드로 호출해주어야 합니다.
그리고 스트링 배열의 선언...
Const, 즉 값을 바꾸지 않을 배열이라면 C++에서처럼 선언과 동시에 초기화가 가능
하지만, const가 아닌 배열은 안됩니다.
const
CharArray : Array[0..3] of String = ('a', 'b', 'c', 'd');
begin
...
만약 배열 인자의 값을 바꾸어야 한다면...
Var
CharArray : Array[0..3] of String;
begin
CharArray[0] := 'a';
CharArray[1] := 'b';
CharArray[2] := 'c';
CharArray[3] := 'd';
...
이렇게, 좀 번거롭게 코딩해야 하죠.
그럼 참고하시길...
임펠리테리 박지훈이었습니다.
(
http://myhome.thrunet.com/~cbuilder, cbuilder@thrunet.com)