[ 파워빌더.Tab - tab control에서 만들었다 없앴는데도 1개가 남는 문제  ]

 

 

  설명이 어렵네요..

tab에서 탭의 수를 알아내는 방법이

int li_no
li_no = upperbound(tab_1.control)  // or upperbound(tab_1.control[])

이런식인데요

첨에는 이걸로 현재 열린 탭의 수가 몇개인지 열린탭을 모두 제거시켰을 때
제거가 되어 있는지 등 알아낼 수 있는데요

첨에는 탭은
저 li_no값이 0을 리턴합니다. 즉, 전혀 열려진 탭이 없다는 뜻이죠

근데 탭을 추가했다가 모두 비워버렸는데도

저 tab_1.control에는 1개가 존재하더라구요.
그 1개가 정상적인지 아닌지 확인하려니 확인할 길이 없어 3시간 헤맸네요

tab_1.control[1].classname()
뭐 이런걸로는 안됩니다.
isnull(tab_1.control[1]) 하면 false을 리턴하면서 null이 아니라고 알려주니
황당하더군요.

그러다가 알았는데

isvalid(tab_1.control[1])을 해 보면 false을 리턴해 줍니다.
정상적으로 tab에 1개의 오브젝트가 들어가 있다면 여기서 true을 리턴하거든요.


도움이 되셨음 좋겠습니다.

 

'파워빌더 > Tab' 카테고리의 다른 글

파워빌더 Tab Page 이동 하기  (0) 2017.01.26
Posted by 농부지기
,

 [  ◎ Tab Page 이동 하기 ]     

 

☞   

 

1. 하나의 Tab에는 여러개의 Page를 추가할 수 있다.

   이때 Page를 추가 하면 필요에 따라서는 Properties에서 Page의 위치를
    자유롭게 이동시킬 수 있다.

2. 그런데

     AA Windows에 하나의 Tab과 5개의 Page가 존재 하고,
     BB는 위 AA Windows를 상속해서 BB Windows를 만들었을 경우
     이때 page1, page2, page3, page4, page5 로 지정된 Page 순서를
     Properties에서 이동시킬 수 없다.

     즉, 상속을 받은 Child는 page 순서를 변경할 수 없다. 경우에는

     해결방법 : Script에서 Dynamic하게 변경할 수 있다.

               tab_1.movetab(4,1);   //page4를 (1) 맨 앞쪽으로 이동켜라. 는 의미이다.

    참고, moveTab을 사용하였을 경우
          pageindex는  page4가 1이 되고, page1가 2, page2이 3, page3이 4, page5가 5 가 된다.
          즉, 실행시 Script로 page를 이동 시켰지만  최종page는 실행중에 눈에 보이는 index가 된다.

 

Posted by 농부지기
,