안녕하세요...
델파이 컴포넌트에 대해 공부중입니다.
StringGrid를 이용하여 새로운 컴포넌트를 만들려고 하는데
ColName이란 Property를 새로 추가하여 Col에 글자를 써 넣으려고 합니다.
우선, Object Inspector상에서 여러개의 String을 입력받기 위해
제가 한것은 ColName을 TStringList로 선언하여 Object Inspector상에는 표시가 되었는데
거기서 Data를 입력하기 위하여 ... 을 클릭하면
"Cannot assing a nil to a TRichEditStrings" 라는 메세지가 뜹니다.
구현은
private
{ Private declarations }
FColName : TStringList;
protected
{ Protected declarations }
procedure SetColName(Value : TStringList);
public
{ Public declarations }
published
{ Published declarations }
property ColName : TStringList read FColName write SetColName;
end;
.....
procedure TAdvStringGrid.SetColName(Value : TStringList);
begin
if Assigned(FColName) then
FColName.Assign(Value)
else
FColName := Value;
end;
이라고 했습니다.
초보라 맞는지도 잘 모르겠네요..
잘못된 부분이 어디인지....알려주시면 감사하겠습니다.
에러메세지를 보면... 흠... FColName란 필드를 생성하지 않으신것 같네요...
Constructor메소드에서 생성하시고 Destructor메소드에서 제거하시는 코드가 필요할듯하네요...
<!--CodeS-->
public
constructor Create(...);
destructor Destroy; override;
end;
...
constructor TAdvStringGrid.Create(...);
begin
......
FColName := TStringList.Create;
end;
destructor TAdvStringGrid.Destroy;
begin
......
FColName.Free;
end;
<!--CodeE-->
^^ 항상 즐코하세요...