segunda-feira, 13 de junho de 2011

Função MsAdvSize - Dimensionamento de Janelas no Advpl - (Parte 1)

Estarei descrevendo em uma série de post a melhor forma de se criar janelas no Protheus utilizando o MsAdvSize, e com isso possibilitado a visualização plena em todas as resoluções.
O objetivo é mostrar como é possível posicionar diversos objetos dentro da tela e que isso seja possível em qualquer resolução em que o cliente esteja visualizando.
Ao final montarei um exemplo completo.

Parte 1 - Função MsAdvSize


MsAdvSize(lPar1, lPar2, nPar3)

Parametros

lPar1 - Tipo: lógico, Obrigatóriedade: Não, Default: .T.
Indica se a janela a criada possuirá uma EnchoiceBar(barra de botões). A existência da enchoicebar reduzirá a área útil dos objetos da janela.

lPar2 - Tipo: lógico, Obrigatóriedade: Não, Default: .F.
Indica se a janela a ser criada deverá ter tamanho fixo. Criado por razões de compatibilidade a principio não deve ser utilizado.

nPar3 - Tipo: lógico, Obrigatóriedade: Não
Indica um tamanho mínimo de altura em PIXELS a ser utilizado pela janela, ou seja, a janela poderá ser criada com uma altura maior do que a normal em uma resolução baixa.
Este terceiro parametro é recomendado quando não se deseja utilizar 100% da tela, para obter o máximo na resolução 800x600 utilize até 370.

Retorno


Array contendo 7 elementos numéricos. Os elementos de 1 a 4 representam a área de trabalho dos objetos a serem criados e serão passados à MsObjSize(). Os elementos de 5 a 7 são utilizados como base para a construção da dialog (janela).

1 - Linha inicial área trabalho.
2 - Coluna inicial área trabalho.
3 - Linha final área trabalho.
4 - Coluna final área trabalho.
5 - Coluna final dialog (janela).
6 - Linha final dialog (janela).
7 - Linha inicial dialog (janela).

Exemplo 1


LOCAL aAdvSize := {}
LOCAL aInfoAdvSize := {}
LOCAL aObjCoords := {}
LOCAL aObjSize := {}


aAdvSize := MsAdvSize()
aInfoAdvSize:= { aAdvSize[1] , aAdvSize[2] , aAdvSize[3] , aAdvSize[4] , 5 , 5 }
aAdd( aObjCoords , { 000 , 000 , .T. , .T. } )
aObjSize := MsObjSize( aInfoAdvSize , aObjCoords )



Exemplo 2


LOCAL aAdvSize := {}
LOCAL aInfoAdvSize := {}
LOCAL aObjCoords := {}
LOCAL aObjSize := {}


aAdvSize := MsAdvSize(,.T.,370)
aInfoAdvSize:= { aAdvSize[1] , aAdvSize[2] , aAdvSize[3] , aAdvSize[4] , 5 , 5 }
aAdd( aObjCoords , { 000 , 000 , .T. , .T. } )
aObjSize := MsObjSize( aInfoAdvSize , aObjCoords )


Próximas explicações:
Montagem dos arrays aInfoAdvSize e aObjCoords
Função MsObjSize e seu retorno aObjSize

Nenhum comentário: