Legal.
Uma rotina que dá pra usar um recurso que só o Harbour tem !!!
Já testei aqui e funciona.
For EACH cType, cName, nNumber IN _HMG_SYSDATA[ 1 ], _HMG_SYSDATA[ 2 ], _HMG_SYSDATA[ 4 ]
k := cType:__EnumIndex
IF nNumber = NWIND
If cName<>"Message" .AND. cType <> "STATUSBAR" .AND. LEN(cName) > 0 .AND. ;
!Empty( cName ) .And. !( cType $ "MENU,HOTKEY,TOOLBAR,MESSAGEBAR,ITEMMESSAGE,TIMER" )
_ctrl:= nNumber
IF getproperty(hwnd,cName,"FONTsize")=0
_fnt:=(100/hd_ini)*10
ELSE
_fnt:=(100/hd_ini)*getproperty(hwnd,cName,"FONTsize")
ENDIF
_row:=(100/hd_ini)*getproperty(hwnd,cName,"row")
_col:=(100/wd_ini)*getproperty(hwnd,cName,"col")
_wid:=(100/wd_ini)*getproperty(hwnd,cName,"width")
_hei:=(100/hd_ini)*getproperty(hwnd,cName,"height")
RT:=AScan(_metrics, { |x| x[2] == k })
if rt==0
AADD(_METRICS,{ hwnd,k,_fnt,_row,_col,_wid,_hei,_ctrl,cName})
endif
ENDIF
Endif
Next
Só achei estranho não aceitar cType:__EnumIndex direto no codeblock....