답변 너무 감사드립니다.^^
그런데
constructor TXXXX.MyCreate(AOwner: TComponent; ACaption: String);
begin
inherited Create(AOwner); << 호출시 Activate 이벤트까지 실행되어버리네요
Caption := ACaption;
end;
inherited Create(AOwner); 가 실행될 때 Activate 도 같이 실행되어
caption 값에 따라 Activate 시 다른 처리를 하려고 했는데
제가 원하는 대로 처리가 되지 않습니다. ^^
어떻하죠 ^_^;
뭐 다른 방법이 없을 까요?
civilian,안영제 님이 쓰신 글 :
: 그런 이유라면 Form의 Constructor를 추가적으로 만들어서 쓰면 됩니다.
:
: ...
: public
: constructor MyCreate(AOwner: TComponent; ACaption: String);
: end;
:
: constructor TXXXX.MyCreate(AOwner: TComponent; ACaption: String);
: begin
: inherited Create(AOwner);
:
: Caption := ACaption;
: end;
:
:
: 사용할 땐
:
: FMmast_comp := TXXXX.MyCreate(self, 'AAA');
: FMmast_comp.Show;
:
: 그럼..
:
: 델짱 님이 쓰신 글 :
: : 네 그렇군요. 중요한 사실을 알았네요 감사합니다..꾸벅^^;
: : 네 특별한 이유가 있습니다.
: :
: : FMmast_comp := TFMmast_comp.Create(self);
: : FMmast_comp.Caption:= 'AAA';
: : FMmast_comp.Show;
: :
: : 위 처럼 .
: : 화면이 보여지기 전헤 FMmast_comp.Caption 값을 주어
: : Activate 될때 FMmast_comp.Caption 값에 따라 화면을 다르게 보이기 위함이죠.
: :
: : FMmast_comp.Show 호출때만 Activate되게 할수 있는 방법이 있을까요?
: :
: : civilian,안영제 님이 쓰신 글 :
: : : MDI Child 폼의 경우엔 Visible이 기본으로 True로 설정됩니다.
: : : 따라서 폼을 Create하면 Show를 호출하지 않아도 폼이 보이게 됩니다.
: : : 따로 Show를 해야하는 특별한 이유가 있나요?
: : :
: : : 델짱 님이 쓰신 글 :
: : : : 안녕하세요^^;
: : : : MDI 부모폼에서 버튼 클릭 이벤트에 다음과 같이 코딩했슴다
: : : : =============================================================
: : : : for cMDIchildFind := 0 to (MDIChildCount-1) do
: : : : if MDIChildren[cMDIchildFind] is TFMmast_comp then begin
: : : : FMmast_comp.Show;
: : : : exit;
: : : : end;
: : : :
: : : : FMmast_comp := TFMmast_comp.Create(self);
: : : : FMmast_comp.Show;
: : : : =============================================================
: : : :
: : : : FMmast_comp 는 MDI 자식인데 create / Activate 이벤트을 사용합니다
: : : : 그른데 트레이스로 추적해보니
: : : : FMmast_comp := TFMmast_comp.Create(self); 문을 지날때
: : : : create / Activate 문이 같이 수행되네요 ?
: : : :
: : : :
: : : : FMmast_comp.Show 호출시에 비로소 Activate 문이 실행 마땅 할텐데..
: : : : 어떻게 방법이 있을까요?
: : : :
: : : : 그럼 수고 하세요.
|