Utilizando a classe FWLayer, em uma janela que possui mais de uma Layer, estou com a dificuldade de saber quais as coordenadas finais (baixo e direita) onde termina a Layer, para utilizar nos parâmetros de coordenadas do MsSelect. Alguém sabe informar se existe alguma função que retorne essas coordenadas?
Para o Layer inteiro (principal) eu uso o oSizeDlg:aWindSize. para as outras janelas dentro do layer, tem que ser "na mão" mesmo. veja se o exemplo a baixo ajuda.
oDlgTst := MsDialog():New(oSizeDlg:aWindSize[1], oSizeDlg:aWindSize[2], oSizeDlg:aWindSize[3], oSizeDlg:aWindSize[4], "Tela inteira do FwLayer",,,,,,,,, .T.)
//Inicializa o FWLayer
oLayer:Init(oDlgTst,.F.,.T.)
//Cria as colunas do Layer
oLayer:addCollumn('Col01',20,.F.) oLayer:addCollumn('Col02',20,.F.)
//Adiciona Janelas as colunas
oLayer:addWindow('Col01','C1_Win01','Janela 01',60,.T.,.F.,{|| Alert("janela 01 Coluna 1!") },,{|| Alert("Janela 01, Coluna 1!") })
Foi o que pensei. Fazendo “na mão” tem o problema de abrir em outro tipo de monitor, ficar os objetos montados.
Boa noite, Adriano!
Verifique se o exemplo abaixo lhe ajuda.
oLayer:AddLine('LIN1', 100, .F.)
oLayer:AddCollumn('COL1', 100, .T., 'LIN1')
oLayer:AddWindow('COL1', 'BROWSE', cTitle, 100, .F. ,.T.,, 'LIN1', { || })
oPanel := oLayer:GetWinPanel('COL1', 'BROWSE', 'LIN1')
O método GetWinPanel da classe FwLayer retorna um objeto da classe TPanel, de acordo com a janela da layer no qual você selecionou.
Através do objeto TPanel, é possível conseguir as coordenadas daquele painel em específico. Por exemplo:
nAltura := oPanel:nHeight
nLargura := oPanel:nWidth
Bom dia. Já tinha tentado dessa forma e não fica exatamente no local exato, respeitando os limites do Layer. Ele ultrapassa as coordenadas da direita e da parte de baixo do Layer.