Jump to content
Fivewin Brasil

@ Say eis a questão!


joaosolution

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...