안녕하세요..
Tdbedit를 계승한 간단한 컴포넌트를 만들고 있는 중인데.. 문제가
있어서 또(!) 이렇게 글을 적습니다...
Function TDbSEdit.DataEmptyCheck: Boolean;
Begin
if field.Isnull then FU_DataIsEmpty := True
else FU_DataIsEmpty := False;
if field.datatype = ftstring then Begin
if Trim(Text) = '' then FU_DataIsEmpty := True
else FU_DataIsEmpty := False;
end;
result := FU_DataIsEmpty;
end;
이라는 펑션을 만들고
tdbedit의 OnChange Event를 Overring해서
procedure TDbSEdit.Change;
begin
inherited Change;
DataEmptyCheck;
end;
라고 코딩을 했습니다.
참고로 Function TDbSEdit.DataEmptyCheck: Boolean; 평션에서 사용하는
FU_DataIsEmpty 는
private
{ Private fields of TDbSEdit }
FU_DataEmptyErrorMessage : TStrings;
FU_DataIsEmpty:Boolean;
와 같이 정의되어 있고 다시
Published
property U_DataIsEmpty: Boolean read FU_DataIsEmpty write FU_DataIsEmpty default true;
라고 Published에 정의가 되어 있습니다...
그런데... 이 콤포넌트로 화면에 디자인을 하면 디자인 타임에
이 컴포넌트가 포함되어 있는 dclusr40.bpl에서 access violation error가
저장된 폼을 델파이 IDE로 불러오면 처음 한번만 발생을 하는데..
도우미 무엇이 잘못된건지 모르겠네요..??
저의 짧은 생각에는 Tdbsedit(제가 작성중인 컴포넌트 클래스명)가 연결되어
있는 table이나 query component가 델파이 Ide에서 열려지면서
자동으로 Ondatachange Event가 발생함과 동시에 DataEmptyCheck; 평션을
실행할려고 하면서 발생하는것 같은데... 해결방법을 모르겠네요???
전문가님의 조언을 부탁드립니다...
여기서 많은 도움을 얻고 있는 왕초보 드림.
if csDesigning in ComponentState then
begin
end else
begin
end;
왕초보 wrote:
> 안녕하세요..
> Tdbedit를 계승한 간단한 컴포넌트를 만들고 있는 중인데.. 문제가
> 있어서 또(!) 이렇게 글을 적습니다...
>
> Function TDbSEdit.DataEmptyCheck: Boolean;
> Begin
>
> if field.Isnull then FU_DataIsEmpty := True
> else FU_DataIsEmpty := False;
>
> if field.datatype = ftstring then Begin
> if Trim(Text) = '' then FU_DataIsEmpty := True
> else FU_DataIsEmpty := False;
> end;
> result := FU_DataIsEmpty;
> end;
> 이라는 펑션을 만들고
> tdbedit의 OnChange Event를 Overring해서
> procedure TDbSEdit.Change;
> begin
> inherited Change;
> DataEmptyCheck;
> end;
> 라고 코딩을 했습니다.
> 참고로 Function TDbSEdit.DataEmptyCheck: Boolean; 평션에서 사용하는
> FU_DataIsEmpty 는
> private
> { Private fields of TDbSEdit }
> FU_DataEmptyErrorMessage : TStrings;
> FU_DataIsEmpty:Boolean;
> 와 같이 정의되어 있고 다시
> Published
> property U_DataIsEmpty: Boolean read FU_DataIsEmpty write FU_DataIsEmpty default true;
> 라고 Published에 정의가 되어 있습니다...
> 그런데... 이 콤포넌트로 화면에 디자인을 하면 디자인 타임에
> 이 컴포넌트가 포함되어 있는 dclusr40.bpl에서 access violation error가
> 저장된 폼을 델파이 IDE로 불러오면 처음 한번만 발생을 하는데..
> 도우미 무엇이 잘못된건지 모르겠네요..??
>
> 저의 짧은 생각에는 Tdbsedit(제가 작성중인 컴포넌트 클래스명)가 연결되어
> 있는 table이나 query component가 델파이 Ide에서 열려지면서
> 자동으로 Ondatachange Event가 발생함과 동시에 DataEmptyCheck; 평션을
> 실행할려고 하면서 발생하는것 같은데... 해결방법을 모르겠네요???
>
> 전문가님의 조언을 부탁드립니다...
>
> 여기서 많은 도움을 얻고 있는 왕초보 드림.
>
>
>