joaosolution Posted June 26, 2013 Report Share Posted June 26, 2013 Srs. bom dia Trabalho com telas feitas em Workshop e Pelles e gostaria de trabalhar com @ SAY. O maior problema que estou tendo é a questão do posicionamento dos SAYS e GETS. Somente depois de compilar e testar que consigo posicionar os campos de forma correta @ 1.3,5 @ 3.6 ,8 etc.. Alguém já conseguiu algum padrão para posicionamento de forma que não precise ficar olhando o posicionamento. Quero poder colocar a linha e coluna no código e saber que eles estarão de forma correta como fazia no velho DOS. Att João Bosco Quote Link to comment Share on other sites More sharing options...
aferra Posted June 26, 2013 Report Share Posted June 26, 2013 Olá João, o ideal é usar o PIXEL pois ai vc vai trabalhar de uma forma +- igual ao antigo DOS. exemplo DEFINE DIALOG oDlg FROM 0,0 TO 436,650 PIXEL FONT oFnt COLOR <color1>.<color2> @ 010,005 SAY "Nome de Algo" SIZE 050,7 PIXEL OF oDlg @ 017,005 GET oObj1 VAR cVar1 PICTURE "@!" SIZE 195,9 PIXEL OF oDlg @ 010,200 SAY "Nome de Alguma coisa" SIZE 050,7 PIXEL OF oDlg @ 017,200 GET oObj2 VAR cVar2 PICTURE "@!" SIZE 195,9 PIXEL OF oDlg @ 028,005 SAY "Outra coisa" SIZE 050,7 PIXEL OF oDlg @ 035,005 GET oObj3 VAR cVar3 PICTURE "@!" SIZE 95,9 PIXEL OF oDlg @ 028,100 SAY "Mais Outra coisa" SIZE 050,7 PIXEL OF oDlg @ 035,100 GET oObj4 VAR cVar4 PICTURE "@!" SIZE 95,9 PIXEL OF oDlg ACTIVATE note no say e o get a diferença é justamente o tamanho da altura do SIZE ( em laranja ), veja que coloquei na mesma linha porem acrescentei 5 pixels para a próxima coluna pela linha mesma ideia, se vc usar 9 no caso do GET some e passe para a linha debaixo e assim vai... espero ter acertado na forma de passar.... um grande abraço Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted July 1, 2013 Report Share Posted July 1, 2013 Como o Alessandro falou, utilize a cláusula PIXEL. Eu criei duas funções, como abaixo: FUNCTION Row(nPar) RETURN nPar * SAY_CHARPIX_H FUNCTION Col(nPar) RETURN nPar * SAY_CHARPIX_W E uso elas assim: @ Row(01),Col(01) SAY ...... OF oDlg PIXEL @ Row(02),Col(01) SAY ...... OF oDlg PIXEL @ Row(03),Col(01) SAY ...... OF oDlg PIXEL @ Row(04),Col(01) SAY ...... OF oDlg PIXEL Ou seja, nas funções Row e Col, defini uma variável de linha, que representaria UM (1) espaço entre objetos, o mesmo vale para a coluna ou seja ^^.... é melhor fazer isso, do que ficar digitando o valor real do pixel: (minha opinião) @ 050,10 SAY ...... OF oDlg PIXEL @ 100,10 SAY ...... OF oDlg PIXEL @ 150,10 SAY ...... OF oDlg PIXEL @ 200,10 SAY ...... OF oDlg PIXEL Quote Link to comment Share on other sites More sharing options...
aferra Posted July 1, 2013 Report Share Posted July 1, 2013 Tudo depende da prática.... Quote Link to comment Share on other sites More sharing options...
joaosolution Posted July 1, 2013 Author Report Share Posted July 1, 2013 Srs. Grato pelas respostas! Criei a função para linha e coluna. E criei para O SIZE Width,Height dos says e gets também. A idéia é: cVar1 := Space(20) @ RowSay(1),ColSay(1) SAY "Nome de Algo" SIZE TamSay(12),7 PIXEL OF oDlg @ RowSay(1),ColSay(14) GET oObj1 VAR cVar1 PICTURE "@!" SIZE TamGet(20),10 PIXEL OF oDlg Desta maneira quando crio um say ou get posso colocar o tamanho de caracteres e as funções convertem. DEFINE FONT oFont NAME "Arial" SIZE 0,-12 OF oDlg //----------------------------------------------------------------------------- FUNCTION TamSay(pTam) RETURN Int( pTam * 13 ) //----------------------------------------------------------------------------- FUNCTION Tamget(pTam) RETURN Int( pTam * 4.9 ) Att João Bosco Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.