Página 1 de 1

Posição da janela com relação ao Harbour

Enviado: 21 Mai 2017 18:03
por JoséQuintas
O Harbour tem a opção de pegar posição e tamanho da janela atual.

hb_gtInfo( HB_GTI_SCREENSIZE )[ 1 ]
hb_gtInfo( HB_GTI_SCREENSIZE )[ 2 ]
hb_gtInfo( HB_GTI_SETPOS_XY )[ 1 ]
hb_gtInfo( HB_GTI_SETPOS_XY )[ 2 ]

Ao usar no diálogo HWGUI, a janela fica desposicionada.

Código: Selecionar todos

INIT DIALOG oDlgPesquisa AT AppRow(), AppCol() SIZE AppWidth(), AppHeight() 
@ 1, 1 BROWSE oBrowse DATABASE SIZE AppWidth(), AppHeight() STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
Precisa alguma conversão?

Por exemplo retornou 650, 1262 como posição inicial, mas a janela da hwgui ficou no rodapé da tela.

Posição da janela com relação ao Harbour

Enviado: 21 Mai 2017 18:38
por JoséQuintas

Código: Selecionar todos

   MsgExclamation( Str( AppCol() ) + " , " + Str( AppRow() ) + ", " + Str( AppWidth() ) + ", " + Str( AppHeight() ) )
   INIT DIALOG oDlgPesquisa AT AppCol(), AppRow() SIZE AppWidth(), AppHeight() TITLE "Browse do arquivo " + Alias()
Isso mostrou 865, 741, 792, 570
hwgui2.png
Não entendo a posição da janela hwgui.

Considerando que a tela é 3840 x 2160, deve estar na posição 1920 x 1500 ou não?

Até pensei no redimensionamento do Windows, mas está em 110% apenas, o que daria uma diferença de 10%.
.

Posição da janela com relação ao Harbour

Enviado: 21 Mai 2017 18:45
por JoséQuintas
Outro teste mais radical:

Código: Selecionar todos

   INIT DIALOG oDlgPesquisa AT 500, 500 SIZE 500, 500 TITLE "Browse do arquivo " + Alias()

   @ 1, 1 BROWSE oBrowse DATABASE SIZE 450, 450 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
Tudo 500, posição inicial, final, e tamanhos.
hwgui3.png
Pra mim, isso tá na 2000 x 1500, e não na 500 x 500

O que está errado?

Posição da janela com relação ao Harbour

Enviado: 21 Mai 2017 19:02
por JoséQuintas
Eureka !
É a posição relativa à janela atual. Usando posição 0, 0 ficou aceitável.

Código: Selecionar todos

   INIT DIALOG oDlgPesquisa AT 0, 0 SIZE AppWidth(), AppHeight() TITLE "Browse do arquivo " + Alias()
hwguix.png
Agora, aparentemente a diferença tem a ver com a margem do título, e a margem de borda que teria em outras versões de Windows....

Posição da janela com relação ao Harbour

Enviado: 21 Mai 2017 21:50
por janio
Nao seria DS_CENTER do Dialog que vc está querendo?

Código: Selecionar todos

  INIT DIALOG oDlg TITLE (MsgCriaSoft + " - ERRO NFE ") ;
    AT 0, 0 SIZE 507,246 NOEXIT CLIPPER  ;
    ON INIT {|o| o:nInitFocus := o:oButtonex1 } ;
    STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER 
    Thisform := oDlg

Posição da janela com relação ao Harbour

Enviado: 21 Mai 2017 23:57
por JoséQuintas
Não.
É pra tela ficar encima da outra, na mesma posição.
Centrizado ela vai ficar fora do lugar.

Posição da janela com relação ao Harbour

Enviado: 22 Mai 2017 07:50
por Toledo
JoséQuintas escreveu:INIT DIALOG oDlgPesquisa AT AppRow(), AppCol() SIZE AppWidth(), AppHeight()
No AT o correto seria AT AppCol(), AppRow() (AT Coluna, Linha).

Abraços,

Posição da janela com relação ao Harbour

Enviado: 22 Mai 2017 12:13
por JoséQuintas
Vou corrigir as funções,

Tá quase bom...
Só falta funcionar direito em multithread.