Ponto de entrada MT110TEL

Bom dia Estou com problema no posicionmento dos campos adicionados na tela de solicitação de compra. Ao abrir em uma determinada resolução fica bom, mas se eu abri em uma outra resolução bagunça tudo. O detalhe é que os campos padrão não alteraram a posição. Existe uma forma de fazer com que permaneçam nas mesmas posições?

Abaixo meu código


User Function MT110TEL()

Local oNewDialog := PARAMIXB[1]
Local aPosGet    := PARAMIXB[2]
Local nOpcX      := PARAMIXB[3]
//Local nReg       := PARAMIXB[4]
Local oGet01

If nOpcx == 3 // Inclusão
    Public cOperador  := SPACE(6)  
    Public cSenhaOper := SPACE(10)
    Public cNome      := SPACE(40)

else
   Public cOperador := SC1->C1_XOPERAD    
    //Public cSenhaOper    := criaVar('C1_XSENHA2')    
    Public cSenhaOper    := SPACE(10)
    Public cNome     := SC1->C1_NOMOPER  
Endif

//If cEmpAnt == "04"
    aadd(aPosGet[1],0)
    aadd(aPosGet[1],0)

    //Monta os campos.

    @ 72,030 Say 'Operador' Pixel Size 30,11 Of oNewDialog
    @ 71,110 MSGET oGet01 Var cOperador Size 052, 011 Picture '@!' Of oNewDialog COLORS 0, 16777215 PIXEL When .T.  F3("SZU") VALID( cNome := Posicione("SZU", 1, xFilial("SZU") + cOperador, "ZU_NOME"))

    @ 72,310 Say 'Senha User' Pixel Size 30,11 Of oNewDialog
    @ 71,420 MSGET oGet02 Var cSenhaOper Size 092, 011 Picture '@*' Of oNewDialog COLORS 0, 16777215 PIXEL When .T. 

    @ 72,670 Say 'Nome' Pixel Size 30,9 Of oNewDialog
    @ 71,700 MSGET oGet03 Var cNome Size 150, 011 Picture '@!' Of oNewDialog COLORS 0, 16777215 PIXEL When .F. 

//Endif

//Fim do programa

Return

Olá.

Para que os campos se comportem corretamente, você precisa utilizar as posições retornadas pelo PARAMIXB[2]. Essa variável sempre irá retornar as posições corretas, independente da resolução da tela.

Exemplo:


Local aPosGet    := PARAMIXB[2]

@ 72, aPosGet[1,1] Say 'Operador' Pixel Size 30,11 Of oNewDialog
@ 71, aPosGet[1,2] MSGET oGet01 Var cOperador Size 052, 011 Picture '@!' Of oNewDialog COLORS 0, 16777215 PIXEL When .T.  F3("SZU") VALID( cNome := Posicione("SZU", 1, xFilial("SZU") + cOperador, "ZU_NOME"))

Funcionou. Obrigado