Página 1 de 1
Carregar form com linha e coluna relativo ao form chamador
Enviado: 12 Jun 2019 00:50
por rubens
Boa noite..
Preciso carregar o form2 com linha e coluna relativa ao form1.
Código: Selecionar todos
//pego linha e coluna do form1
// Text_8 - Textbox do vendedor
Local nRow := GetProperty('Orca','Text_8','Row')+ GetProperty('Orca','Text_8','Height')+10
Local nCol := GetProperty('Orca','Text_8','Col')
//Carrego o form2 e seto linha e coluna
Load Window Forms\Consulta as Consulta
SetProperty('Consulta','Row', nRow )
SetProperty('Consulta','Col', nCol )
On Key Escape Of Consulta Action ThisWindow.Release
Consulta.Activate
Só que quando ativa o form2 ele fica relativo ao desktop como na figura abaixo
queria que ficasse assim:
Obg
Rubens
Carregar form com linha e coluna relativo ao form chamador
Enviado: 12 Jun 2019 02:46
por JoséQuintas
Se fosse Visual Basic 6 eu diria pra carregar o formulário, ajustar a posição e só depois mostrar.
Se existir essa opção na minigui....
Algo mais ou menos assim:
load form2
form2.top = me.top + Int( ( me.height - form2.height ) / 2 )
form2.left = me.left + Int( ( me.width - form2.width ) / 2 )
form2.show
ou talvez carregar como visible = false, e fazer a mesma coisa.
Veja se existe a possibilidade na minigui, já que é baseada no VB5.
Nota:
row/col ou x/y, a métrica é diferente, mas os cálculos são no mesmo estilo.
Carregar form com linha e coluna relativo ao form chamador
Enviado: 12 Jun 2019 10:44
por asimoes
Um exemplo de um sistema meu:
nLarguraWindow seria a largura da sua janela de trás.
nLarguraWindow:=Form_Main.Width ou o width do form de trás
125 é a posição vertical, que pode ser:
nheight := ( Form_Main.Height - o tamanho vertical da janela que você quer centralizar ) / 2
AT nheight , (nLarguraWindow - o tamanho horizontal da janela que você quer centralizar) / 2 ;
Código: Selecionar todos
DEFINE WINDOW fInformaBoleto ;
AT 125, (nLarguraWindow - 540) / 2 ;
WIDTH 540 ;
HEIGHT 475 ;
TITLE 'Informações sobre o boleto ('+AllTrim(cNossoNumero)+') apartamento: '+cApto ;
ICON "ICON_SOBRE" ;
MODAL ;
NOSIZE ;
ON INIT (hWnd:=GetActiveWindow())
Nota: Você tem que pegar as dimensões de largura ( width ) e altura (height ) da janela de trás, e usar no AT
No AT seria
nWidth := ( janelaAnt.With - JanelaPos.Width ) / 2
nHeight := (JanelaAnt.Height - JanelaPos.Height ) / 2
Assim deve centratalizar proporcionalmente a janela de trás.
Na janelaPos
AT nWidth, nHeight
Carregar form com linha e coluna relativo ao form chamador
Enviado: 12 Jun 2019 16:25
por rubens
Boa tarde..
José já está sendo feito assim..
Código: Selecionar todos
load form2
form2.top = me.top + Int( ( me.height - form2.height ) / 2 )
form2.left = me.left + Int( ( me.width - form2.width ) / 2 )
form2.show
Aqui calcula a linha e a coluna
Código: Selecionar todos
Local nRow := GetProperty('Orca','Text_8','Row')+ GetProperty('Orca','Text_8','Height')+10
Local nCol := GetProperty('Orca','Text_8','Col')
Carrega o formulario, seta propriedade Row e Col e só depois que manda ativar..
Código: Selecionar todos
Load Window Forms\Consulta as Consulta
SetProperty('Consulta','Row', nRow )
SetProperty('Consulta','Col', nCol )
On Key Escape Of Consulta Action ThisWindow.Release
Consulta.Activate
Asimoes desse jeito aí acho que funciona porque ainda posso colocar um PARENT, mas eu tô carregando o formulário.. daí não encontrei opção de linkar o form2 ao form1.
Rubens
Carregar form com linha e coluna relativo ao form chamador
Enviado: 12 Jun 2019 19:01
por JoséQuintas
Minhas HMGs estão inoperantes.
Pra atualizar, e não ter que ficar confirmando 2.000 vezes, jogo tudo no lixo, e tenho que alterar tudo de novo.
E como não uso no dia a dia... vai ficando pra depois.
Senão faria alguns testes sobre isso.
Aliás... é capaz que antes de alterar já sai versão nova... e lá se vai tudo de novo... kkkk
Prefiro isso do que usar do jeito que vém original, nem sei como suportam aquilo.