Clipper On Line • Ver Tópico - Carregar form com linha e coluna relativo ao form chamador

Carregar form com linha e coluna relativo ao form chamador

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Carregar form com linha e coluna relativo ao form chamador

Mensagempor rubens » 12 Jun 2019 00:50

Boa noite..
Preciso carregar o form2 com linha e coluna relativa ao form1.
//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
ErroOrcame.png

queria que ficasse assim:
Certo.png

Obg
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1442
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 69 vezes
Mens.Curtidas: 93 vezes

Carregar form com linha e coluna relativo ao form chamador

Mensagempor JoséQuintas » 12 Jun 2019 02:46

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.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11583
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 740 vezes

Carregar form com linha e coluna relativo ao form chamador

Mensagempor asimoes » 12 Jun 2019 10:44

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 ;

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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4159
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 292 vezes
Mens.Curtidas: 208 vezes

Carregar form com linha e coluna relativo ao form chamador

Mensagempor rubens » 12 Jun 2019 16:25

Boa tarde..
José já está sendo feito 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

Aqui calcula a linha e a coluna
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..
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
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1442
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 69 vezes
Mens.Curtidas: 93 vezes

Carregar form com linha e coluna relativo ao form chamador

Mensagempor JoséQuintas » 12 Jun 2019 19:01

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.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11583
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 740 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro