2017-09-29 3 views
4

:런타임에 구성 요소를 숨기는 방법은 무엇입니까? 나는이 같은 <code>IWRegion</code> 내부 프레임을 생성하고 양육하고있어 IntraWeb에 14.1 델파이 베를린, 를 사용

UserSession.Body_Region; 런타임에 형성 양식에서 그 지역을 통과 UserSessionUnitBody_Region: TIWRegion;로 decleared됩니다
Page := TFrame.Create(Self); 
Page.Parent := UserSession.Body_Region; 

, 그리고 모두 잘 작동합니다.

문제는 내가 UserSession.Main_Body_Region.Component[0];이다 런타임에 UserSession.Body_Region 내부에 적재 된 프레임을 숨기려하지만 난 그것을 할 수 것입니다.

나는

(UserSession.Main_Body_Region.Component[0] as TFrame).hide; 

또는

(UserSession.Main_Body_Region.Component[0] as TFrame).Visible:= false; 

로 맛을했지만 제대로 동작하지 않습니다! 또한 오류가 없습니다!

내가 할 수있는 다른 방법이 있습니까? 아니면 여기에 뭔가 빠졌습니까? documentation 비록

+0

나는 {Visible}로 해봤지만, {Enable}이 코드가 반응하는지 아닌지, 실수로 지나쳤는지 확인해 보았습니다. 그래서 두 경우 {Visible/Enable} 모두 작동하지 않습니다. – Dreamer64

+1

아마도'property RenderInvisibleControls : Boolean;'(TIWRegion')'False'를 설정하면 도움이 될까요? [docs] (http://docs.atozed.com/docs.dll/intraweb%20components/standard/TIWRegion.html)를 참조하십시오. –

+0

맞습니다. RenderInvisibleControls 속성을 false로 설정하고 코드가 시작되었습니다. 부끄러움처럼 작동하려면 – Dreamer64

답변

5

TIWRegion 제어 VCL로부터 TPanel과의 IntraWeb에 동등한 것을 말한다.

것이 중요합니다 차이가 고려했다 :

property RenderInvisibleControls: Boolean;TIWBaseContainer

문서를 알리기 위해이 속성을

로 설명 사용에서 상속하는 가시가있는 모든 제어 = False 컨테이너가 렌더링 될 때 보이는 컨트롤과 함께 렌더링됩니다. 비동기 이벤트를 사용하여 컨트롤의 가시성을 으로 변경해야 할 때 특히 유용합니다.

IOW는 False이 속성을 설정하면 렌더링되는 Visible = False와 자식 구성 요소를 중지합니다.