名称 | ・・・・・・・ |
パート内の全ての子のハンドル取得 |
ルーチン名 | ・・・・・・・ |
GetChildHandles |
スクリプトNo | ・・・・・・・ | sub-009 |
file名 | ・・・・・・・ | script009.vbs(右クリックのコンテクストメニューでダウンロードできます。(windowsのみ) 修正(2003/05/26)UTF-8からANSIに統一。 |
概略 | ・・・・・・・ |
ハンドルで指定したパートの中に含まれる全ての子(形状,パート)のハンドルを取得して、配列を含むバリアント型の変数に格納して返す。 |
使用前提 | ・・・・・・・ |
パート内にある子の数を予めGetChildNumで取得しておく。 |
依存関係 | ・・・・・・・ |
特に無し |
引数説明 | ・・・・・・・ |
PartHandle:対象となるパートのハンドル(識別番号) |
戻り値説明 | ・・・・・・・ |
ハンドルデータ(複数)を配列を含むバリアント変数として返す。 |
変数説明 | ・・・・・・・ |
orgHandle:実行前の選択状態を保持する変数 |
注意点 | ・・・・・・・ |
下記の使用例ではパートに含まれる子の数を取得するためにsub-008のGetChildNumというfunctionを使用します。 |
  | ||
スクリプト | ||
'パートにある子(形状、パート)のハンドルを配列を含むバリアント変数で返す。 Function GetChildHandles(PartHandle,ChildNum) dim orgHandle,DSTemp,i,DS() orgHandle=XShade.Handle() '実行前の選択状況を保存 XShade.SelectByHandle(PartHandle) redim DS(ChildNum) XShade.selectChild(0) for i=0 to ChildNum-1 DSTemp=XShade.Handle DS(i)=DSTemp if i<>ChildNum then XShade.SelectBrother(1) next GetChildHandles=DS XShade.SelectByHandle(orgHandle) '実行前の選択状況に復帰 end Function |
||
使用例 | ||
'選択したパートに含まれる子のハンドルを全て表示する使用例 option explicit call main() sub main() dim ChildHandles,PartHandle,num,OK,i PartHandle=XShade.handle() if GetChildNum(PartHandle,num) then ChildHandles=GetChildHandles(PartHandle,num) else OK=XShade.ShowMessageBox("中断します。",false) exit sub end if for i=0 to num-1 XShade.message(i&"番目のハンドルは"&ChildHandles(i)&"です。") next end sub |