|
프로그램 하다 보면 간혹 만나는 현상인데,
Update이벤트가 발생하지 않아서 그러한 현상이 있는 듯 합니다.
이 경우, 폼이 보이고 난 후에 해당 컴포넌트의 속성을 변경하여야 합니다.
컴포넌트 속성의 변경은 속성 변경(속성에 값입력)만으로 끝나는 것이 아니라
Update 이벤트가 발생하여, 해당 컴포넌트의 화면표시도 함께 변경되는 것입니다.
하지만, 컴포넌트가 보이지 않는 상황에서 속성을 변경하면
Update 이벤트가 발생하지 않으므로 이러한 현상이 생깁니다.
이현진 님이 쓰신 글 :
: TurboExplorer를 사용하고 있습니다.
:
: A폼에서 B폼에 있는 TRadioButton::Checked 프로퍼티를 설정하고,
: B폼의 ShowModal() 함수를 호출했지만, RadioButton check가 정상 동작을 안하는 것 같습니다.
: B폼의 다른 RadioButton들을 명시적으로 Checked=false를 하고, 원하는 버튼만 Checked=true 해도 변경이 안되네요.
:
: 다른 폼에 있는 RadioButton은 제어가 안되나요?
:
: A::OnClick()
: {
: B->RadioButton1->Checked=true;
: if(B->RadioButton1->Checked) ShowMessage("Enable1"); // 디버깅 시 true
: B->ShowModal(); // Show() 함수도 마찬가지
: }
:
: B::FormShow()
: {
: if(RadioButton1->Checked) ShowMessage("Enable2"); // 디버깅 시 true
: }
:
: 폼이 완전히 보여진 후에는 RadioButton1이 아닌 다른 버튼에 체크되어 있습니다.
|