보통 Delphi에서는 외부 공개용 const 를 interface 아래에 놓고 처리한다.
그런데 가끔 보면 한 유닛안에 몽땅 다 때려넣어서 꽤나 복잡해지는 경우가 있다.
이런때는 const를 연관된 Class내에 넣어버리면 명확하게 구분하여 사용할 수 있다.
위와 같이 CLASS_NAME const 상수가 있을때 MainLib를 uses에 추가한다면 ctrl+space로 code insight를 불러내면 바로 보여서 어느 유닛에 속해 있는지 한눈에 보이지 않게 된다.
게다가 아래에 다른 클래스가 있다면 이 const 상수가 어느 클래스와 연관이 있는지 찾기가 힘들다.
const 상수를 클래스에 아래와 같이 넣어본다.
값을 쓰고 싶을때는 클래스 생성하지 않고도 불러다 쓸수 있다.
ps.
상속받은 클래스의 선언부에서 부모의 const를 사용하려고 하면 ARRAY_COUNT 상수를 찾을수 없다고 컴파일이 되지 않는다.
TMainClass.ARRAY_COUNT 로 변경하면 된다.
TSubClass의 구현부에서는 그냥 불러다 써도 된다.
아래의 예제를 참고한다.
이제 const도 관련 Class안으로 넣어버리자!!!!!
그런데 가끔 보면 한 유닛안에 몽땅 다 때려넣어서 꽤나 복잡해지는 경우가 있다.
이런때는 const를 연관된 Class내에 넣어버리면 명확하게 구분하여 사용할 수 있다.
unit MainLib;
interface
const
CLASS_NAME = 'TMainClass';
ARRAY_COUNT = 6;
interface
const
CLASS_NAME = 'TMainClass';
ARRAY_COUNT = 6;
위와 같이 CLASS_NAME const 상수가 있을때 MainLib를 uses에 추가한다면 ctrl+space로 code insight를 불러내면 바로 보여서 어느 유닛에 속해 있는지 한눈에 보이지 않게 된다.
게다가 아래에 다른 클래스가 있다면 이 const 상수가 어느 클래스와 연관이 있는지 찾기가 힘들다.
const 상수를 클래스에 아래와 같이 넣어본다.
type
TMainClass = class
const
CLASS_NAME = 'TMainClass';
ARRAY_COUNT = 6;
end;
TMainClass = class
const
CLASS_NAME = 'TMainClass';
ARRAY_COUNT = 6;
end;
값을 쓰고 싶을때는 클래스 생성하지 않고도 불러다 쓸수 있다.
ShowMessage( TMainClass.CLASS_NAME );
ps.
상속받은 클래스의 선언부에서 부모의 const를 사용하려고 하면 ARRAY_COUNT 상수를 찾을수 없다고 컴파일이 되지 않는다.
type
TSubClass = class(TMainClass)
strict private
FIntegerArray: array[0..ARRAY_COUNT - 1] of Integer;
end;
TSubClass = class(TMainClass)
strict private
FIntegerArray: array[0..ARRAY_COUNT - 1] of Integer;
end;
TMainClass.ARRAY_COUNT 로 변경하면 된다.
TSubClass의 구현부에서는 그냥 불러다 써도 된다.
아래의 예제를 참고한다.
type
TSubClass = class(TMainClass)
strict private
FIntegerArray: array[0..TMainClass.ARRAY_COUNT - 1] of Integer;
public
procedure PrintMessage;
end;
implementation
procedure TSubClass.PrintMessage;
begin
ShowMessage( IntToStr(ARRAY_COUNT) );
end;
TSubClass = class(TMainClass)
strict private
FIntegerArray: array[0..TMainClass.ARRAY_COUNT - 1] of Integer;
public
procedure PrintMessage;
end;
implementation
procedure TSubClass.PrintMessage;
begin
ShowMessage( IntToStr(ARRAY_COUNT) );
end;
이제 const도 관련 Class안으로 넣어버리자!!!!!
'Programming > Delphi' 카테고리의 다른 글
Delphi - TOpenDialog쓰면서 FileExists로 왜 체크해요? (0) | 2010.03.14 |
---|---|
Delphi - TArray<T>의 Sort 및 BinarySearch (2) | 2010.02.22 |
Delphi - class의 private, protected에 strict를 추가해보자. (4) | 2010.01.29 |
Delphi - Generic중 유용한 TObjectList<T>에 ToArray를 추가해보자 (6) | 2010.01.21 |
[Delphi] Natural Order 문자열 정렬 (1) | 2009.08.14 |