Tela do sistema
Moderador: Moderadores
Tela do sistema
Bom dia a todos!
Estou começando na minigui, e gostaria de saber de vcs, como fazer a tela fica dimensionada, ou seja se abrir em monitor de 27 pol, e depois em um de 15 pol, o sistema
fica com tela maximizada e todos o seus text, grid etc...
Grato,
Rones
Estou começando na minigui, e gostaria de saber de vcs, como fazer a tela fica dimensionada, ou seja se abrir em monitor de 27 pol, e depois em um de 15 pol, o sistema
fica com tela maximizada e todos o seus text, grid etc...
Grato,
Rones
-
Softwhouse
- Usuário Nível 3

- Mensagens: 324
- Registrado em: 07 Dez 2011 18:44
- Localização: Porto Alegre/RS
Tela do sistema
Quando definir a janela Main, coloca:
Width GetDesktopWidth()
Height GetDesktopHeight()
Width GetDesktopWidth()
Height GetDesktopHeight()
Fernando
Tela do sistema
Fernando,
Mas como fica o grid por exemplo, para ele ficar proporcional aos tamanho dos monitores.
Grato e obrigado pela resposta,
Rones
Mas como fica o grid por exemplo, para ele ficar proporcional aos tamanho dos monitores.
Grato e obrigado pela resposta,
Rones
-
Softwhouse
- Usuário Nível 3

- Mensagens: 324
- Registrado em: 07 Dez 2011 18:44
- Localização: Porto Alegre/RS
-
ivanil
- Usuário Nível 3

- Mensagens: 166
- Registrado em: 11 Set 2004 15:13
- Localização: Florianópolis/SC
Tela do sistema
Caro amigo;
Opcao 1
navegue pela pasta Minigui\SAMPLES\BASIC\AUTOADJUST
Opcao 2
Recalcule você mesmo, acredito esse o modo mais interessante, porque há coisas que você só quer movimentar, outras quer extender...um grid x os botões por exemplo...
Os formulários tem as propriedades minheight e minwidth, esses valores impedem que usuário diminua a ponto de não caber os objetos;
Boa Sorte;
Existe 2 formas de lidar com isso;RONESMEN escreveu: Mas como fica o grid por exemplo, para ele ficar proporcional aos tamanho dos monitores.
Rones
Opcao 1
navegue pela pasta Minigui\SAMPLES\BASIC\AUTOADJUST
Opcao 2
Recalcule você mesmo, acredito esse o modo mais interessante, porque há coisas que você só quer movimentar, outras quer extender...um grid x os botões por exemplo...
Os formulários tem as propriedades minheight e minwidth, esses valores impedem que usuário diminua a ponto de não caber os objetos;
Código: Selecionar todos
#include <hmg.ch>
Function Main( )
DEFINE WINDOW MAIN AT 249, 540 WIDTH 600 HEIGHT 549 MINWIDTH 600 MINHEIGHT 549 TITLE "Test Resize" MAIN ON SIZE (Main_Onsize()) on Maximize (Main_Onsize( ))
DEFINE GRID oGrid
HEADERS { "" }
WIDTHS { 150 }
COL 18
HEIGHT 447
ROW 17
WIDTH 556
END GRID
DEFINE BTNTEXTBOX oBtnText1
COL 249
HEIGHT 27
ROW 473
WIDTH 326
END BTNTEXTBOX
END WINDOW
Main.Center
Main.activate()
REturn .T.
***********************************************
///////////////////////////////////////////////
***********************************************
Static Function Main_Onsize( )
Main.oGrid.width := Main.width-44
Main.oGrid.height:= Main.height-102
Main.oBtnText1.row := main.height-76
Main.oBtnText1.col := main.width-Main.oBtnText1.width-25
Return .T.
Boa Sorte;
Tela do sistema
Caro amigo Ivanil,
Muito obrigado, vou testar ai!
Estou com uma outra dúvida aqui, como faço para ir para a ultima linha de uma grid, sempre vai para a primeira?
Grato,
Rones
Muito obrigado, vou testar ai!
Estou com uma outra dúvida aqui, como faço para ir para a ultima linha de uma grid, sempre vai para a primeira?
Grato,
Rones
Tela do sistema
eu como não uso IDE e faça de forma realmente grafica as janelas (os elementos dela for a dentro) sofri feito ouriço pra dar cria mas consegui e agora só alegria. Tem varios exemplos no meu grupo do facebook e aqui uns modelos que publiquei.
-
mmarcondes
- Usuário Nível 2

- Mensagens: 81
- Registrado em: 02 Jul 2021 15:06
- Localização: witmarsum
Tela do sistema
Boa tarde,
aqui no meu sistema tenho uma rotina inicial, onde salvo todas as coordenadas, para usar no sistema
qq alteração em uma coordenada, muda no sistema inteiro.
uso minigui extend
antes de abrir a janela principal, vir nesta rotina
fonte uso somente courier new (tamanhos das letras iguais), pra facilitar
declaro todas as variaveis que preciso no sistema baseado um indice
fiz umas medidas aqui consideranto total de pixel
Eu fiz em um monitor grande primeiro então, falha em alguns menores
faz em um monitor de 14" , aí no grande acho que não tem erro.
na rotina INICIO declaro as variáveis que serão usadas para as telas , gets , box etc
Poka
aqui no meu sistema tenho uma rotina inicial, onde salvo todas as coordenadas, para usar no sistema
qq alteração em uma coordenada, muda no sistema inteiro.
uso minigui extend
antes de abrir a janela principal, vir nesta rotina
fonte uso somente courier new (tamanhos das letras iguais), pra facilitar
declaro todas as variaveis que preciso no sistema baseado um indice
fiz umas medidas aqui consideranto total de pixel
Eu fiz em um monitor grande primeiro então, falha em alguns menores
faz em um monitor de 14" , aí no grande acho que não tem erro.
na rotina INICIO declaro as variáveis que serão usadas para as telas , gets , box etc
Código: Selecionar todos
funct inicio
local xindice:=0
*--------coordenadas para usar na janela principal
publ wlarguraPrincipal :=System.DesktopWidth
publ WalturaPrincipal :=System.DesktopHeight
publ walturaTiTuloPrincipal := round(walturaPrincipal/11,0 )
publ walturaBotaoPrincipal := int(wAlturaPrincipal*0.060 ) //int( walturaPrincipal*0.060)
publ wlarguraBotaoPrincipal :=int(wLarguraPrincipal*0.292 )
publ wEspacoBotaoPrincipal := int(wAlturaPrincipal*0.010 )
publ wSizeBotaoPrincipal := int(wlarguraPrincipal * 0.012675) // tamanho equivalente a 13
*----------------------
xindice:= round(18/768,3)
publ waltGet:= round( (walturaPrincipal+80) *xindice ,0) // 31/12/2023 tava esytrapolando
xindice:= round( 25/768,3)
publ wespacoGet := round(walturaPrincipal* xindice ,0)
*----coordenadas janela secundaria---------------
xindice := round(3/768,3)
publ wespacoLin := round(wlarguraPrincipal*xindice,0) // nao mudar
xindice := round(9/1024,3)
publ wsize:= round(wlarguraPrincipal* xindice,0)
if wsize>10
wsize:=10
endif
// botões
publi wLinBt := waltTit+waltTit+wespacoGet+wespacolin
publ waltBt := 3*waltget
publ waltBrowse := WalturaPrincipal -(13*waltget) // altura do browse
publ WlinBtBase := WalturaPrincipal - (4*waltget) // linha botao da base
xindice := round(3/1024,3)
publ wespacoCol := round(wlarguraPrincipal*xindice,0) // usado entre os botoes por exemplo
publ wsizeBtMenu := wsizeBotaoPrincipal // letra de menu secundarios
*------- pera telas secundárias
publ wcolTela:=0
publ wLargTela := wLarguraPrincipal
// deixei = principal mas pode deixar menor
publ wLargTela := wLarguraPrincipal - (20*wsize)
// deixei = principal mas pode deixar menor
publ waltTela := wAlturaPrincipal
publ waltTela := wAlturaPrincipal-(20*wsize)
*------------------
publ wCol := 2*wsize // coluna de inicio geral , label , titulo etc
publ wLargLabel := 20*wsize // largura do label
publ wColGet := wcol+wlarglabel + wsize // coluna de inicio do campo get
publ wLargBt := 13*wsize // largura do botao (todos)
publ wLinBrowse := wlinTit + WaltTit+ waltBt + waltBt + wespacoLin +wespacoLin + wespacoLin
publ wLinMenu := waltTit+waltTit+(wespacoget*2) // linha inicial dos menu NAO PRINCIPAL
*--------para carta-----------------------------------
*--------- diversos------------
publ wfonte :="courier new" // para tudo
publ wBackColorJanelaBrowse :={255,255,255}
publ wBackColorBotaoBrowse := {173,216,230}
publ wFontColorBotaoBrowse := {000,000,000}
publ wBackColorTelaGet := {236,245,216}
publ wFontColorLabelGet := {000,000,000}
publ wBackColorCampoGet := {255,255,255}
publ wFontColorCampoGet := {000,000,000}
*-------para menu de escolha secundaria , não a principal ----------
*--------para usar em buttonex no meio da tela , não em botoes no topo e base da tela
publ wlargButonex :=int(wLarguraPrincipal*0.292 ) //largura do buttonex
publ wAltButonex := int( walturaPrincipal*0.060) // altura butonex
*--fim------para usar em buttonex no meio da tela , não em botoes no topo e base da tela
retu nil
*-------------------------------------
exemplos usando tbtowse no sistema, uma tela qualquer aqui.
DEFINE WINDOW telaTabelas ;
AT wlinTela,wColTela ;
WIDTH wlargTela;
HEIGHT waltTela ;
MODAL;
on init Inicio() ;
NOSYSMENU ;
nocaption;
on size wsize ;
backcolor wbackcolorJanelaBrowse
*-------------botoes da tela----------
DEFINE BUTTONEX botaoinclui
cOL wcol
ROW wlinBt
WIDTH wlargbt
HEIGHT waltBT
CAPTION "<Insert>"+fl +"Inclui"
ACTION funcoes("I")
FONTNAME wfonte
FONTSIZE wsize
backcolor wbackcolorBotaoBrowse
fontcolor wFontColorBotaoBrowse
NOXPSTYLE .T.
END BUTTONEX
DEFINE BUTTONEX botaoaltera
cOL ultcol("telaTabelas","botaoinclui")
ROW wlinBt
WIDTH wlargbt
HEIGHT waltBT
CAPTION "<Insert>"+fl +"Inclui"
ACTION funcoes("A")
FONTNAME wfonte
FONTSIZE wsize
backcolor wbackcolorBotaoBrowse
fontcolor wFontColorBotaoBrowse
NOXPSTYLE .T.
END BUTTONEX
*------------BOTOES BASE DA TELA
DEFINE BUTTONEX Botaofiltro
cOL wcol
ROW wlinBtbase
WIDTH wlargbt
HEIGHT waltBT
CAPTION "<F5>"+fl+"filtra campos"
ACTION filtro()
FONTNAME wfonte
FONTSIZE wsize
backcolor wbackcolorBotaoBrowse
fontcolor wFontColorBotaoBrowse
NOXPSTYLE .T.
END BUTTONEX
//
DEFINE BUTTONEX BotaopageU
cOL ultcol("telaTabelas","botaofiltro")
ROW wlinBtbase
WIDTH wlargbt
HEIGHT waltBT
CAPTION "<PgUp>"+fl+"tela anterior"
ACTION telaAnteiror()
FONTNAME wfonte
FONTSIZE wsize
backcolor wbackcolorBotaoBrowse
fontcolor wFontColorBotaoBrowse
NOXPSTYLE .T.
END BUTTONEX
// tbbrowse
DEFINE TBROWSE browsePesq AT wlinbrowse, 0 ;
WIDTH wlargTela;
HEIGHT waltBrowse ;
font wfonte ;
size wsize ;
fontcolor wFontColorBrowse ;
backcolor wBackColorBrowse
// colunas , so pra mostrar as variaveis fixas
// aqui defino o tamanho , mas sempre baseado em wsize, que varia dependendo da configuração do monitor
ADD COLUMN TO TBROWSE browsepesq ;
DATA ARRAY ELEMENT 1;
TITLE "Código" SIZE 7*wsize
//
ADD COLUMN TO TBROWSE browsepesq ;
DATA ARRAY ELEMENT 2;
TITLE "Nome" SIZE 30*wsize
END TBROWSE
END WINDOW
CENTER WINDOW telaTabelas
ACTIVATE WINDOW telaTabelas
Return nil
*-------------
exemplo com get box qualquer
DEFINE WINDOW EntraDadosCademp ;
AT wlintela,wcol ;
WIDTH wlargtela ;
HEIGHT waltTela ;
MODAL;
on init inicio() ;
NOSYSMENU ;
nocaption;
on size wsize ;
backcolor wbackcolorTelaget
// botoes = exemplo acima
// label e getbox
@ wlin ,wcol label L_codigo value "Codigo" ;
width wlarglabel height waltGet font wfonte size Wsize ;
BACKCOLOR wbackcolorTelaget fontcolor wfontcolorlabelget
//
@ Wlin,wcolGet("EntraDadosCademp","l_codigo") GETBOX t_codigo;
width 10*Wsize ;
HEIGHT waltGet ;
value vcodigo ;
picture"@k9" ;
font wfonte;
size Wsize ;
backcolor wbackcolorCampoGet
fontcolor wFontColorCampoGet
*---------------------------------------------------------------
@ wlin+=wespacoget ,wcol label L_nome value "Nome Empresa*" ;
width wlargLabel height waltGet font wfonte;
size Wsize ;
BACKCOLOR wbackcolortelaget fontcolor wFontColorLabelGet
@ Wlin,wcolGet GETBOX t_nome;
width 30*Wsize ;
HEIGHT waltget ;
value vnome ;
picture"@x" ;
font wfonte;
size Wsize ;
backcolor wbackcolorCampoGet
fontcolor wFontColorCampoGet
end window
center window EntraDadosCademp
activate window EntraDadosCademp
retu nil
*------------------
func ultCol(xjanela,xpropriedade)
//retorna a ultima coluna do botao, label da janela etc + espaco da coluna padrao
declare window &(xjanela)
retu (&(xjanela).&(xpropriedade).col+&(xjanela).&(xpropriedade).width+wespacoCol)
*----------------------------------
func ultLin(xjanela,xpropriedade)
//retorna a ultima lina do botao, label da janela etc + espacoGET padrao
local xlin
declare window &(xjanela)
wlin:=&(xjanela).&(xpropriedade).row+&(xjanela).&(xpropriedade).height + wespacoLin
retu wlin
*------------------------------------
Poka

