FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Duvida sobre os #defines
Posts: 30
Joined: Tue Apr 17, 2007 07:07 PM
Duvida sobre os #defines
Posted: Fri May 18, 2007 02:13 PM

Eu adicionei uma linha no "FiveWin.ch" com um #define de uma variavel que uso em varios documentos, como fasso para redefinir esse valor em outras partes do código de forma que a modificação seja vista por todos os documento que usam o include fo FiveWin?

Um abraço a todos, obrigado.

Um abraço a todos.



FiveWin (2.4 - 7.05) - xHarbour (.971 - .961)



Carlson A. Soares - Brasil -São Paulo - SP
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Duvida sobre os #defines
Posted: Fri May 18, 2007 02:37 PM

Si la modificación la haces en FiveWin.ch entonces tendrás que recompilar todos los PRGs que usen FiveWin.ch

Si es un valor variable, entonces no podrás usar un define sino una variable pública ó llamar a una función que devuelva un valor que puede cambiar

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 30
Joined: Tue Apr 17, 2007 07:07 PM
Duvida sobre os #defines
Posted: Fri May 18, 2007 04:27 PM

Desculpe, mais eu não entendi muito bem.

Eu não posso usar um define no fivewin e sim uma variavel public?
Ou uma função queretorna o valor?

Poderia me mostrar um exemplo?

Por que eu defini os valores padrões no fivewin, e sempre que o programa inicia ele carrega um arquivo de configuração com os valores que os defines devem ficar, mais isso só funciona em 1 documento, queria que todos os outros que usassem o include do fivewin tivessem acesso a essas variaveis cm o valor já atualizado.

Um abraço a todos.



FiveWin (2.4 - 7.05) - xHarbour (.971 - .961)



Carlson A. Soares - Brasil -São Paulo - SP
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Duvida sobre os #defines
Posted: Fri May 18, 2007 05:50 PM

>
Eu adicionei uma linha no "FiveWin.ch" com um #define de uma variavel que uso em varios documentos
>

Puedes mostrarnos como es esa línea ? Y cómo la usas ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 30
Joined: Tue Apr 17, 2007 07:07 PM
Duvida sobre os #defines
Posted: Mon May 21, 2007 03:19 PM
Claro, aqui vai.

#DEFINE nXP GetSysMetrics(0)/100   //Pega a porcentagem da tela
#DEFINE nYP GetSysMetrics(1)/100
#Define nBorda ((nXP + nYP) / 4)     //O tamanho da borda de alguns objs

#define wBackClr        RGB(235,233,237)    //as cores usadas pelas classes
#define wTxtClr         RGB(  0,  0,  0)
#define wTxtClrSel      RGB(230,230,255)
#define wClrSelFocus    RGB( 70,110,200)
#define wClrSel         RGB(170,180,200)
#define wClrNormal      RGB(220,230,240)
#define wClrHeader      RGB( 55, 70,125)

#define oFontP          TFont():New("Courier New",,15)

//Uma classe que monta diversos botões em uma janela
::nBtnWidth    := ((::nWidth - (nBorda * 2)) - ((nBorda / 2) * (nCols - 1))) / nCols   
   ::nBtnHeight   := (::nHeight - (nBorda * 2) - ((nRows - 1) * (nBorda / 2))) / nRows

//Aqui um exemplo das cores sendo usada em outra classe

   if ::aClrSelFocus[1] == nil ; ::aClrSelFocus[1] := wTxtClrSel        ; endif
   if ::aClrSelFocus[2] == nil ; ::aClrSelFocus[2] := wClrSelFocus      ; endif

// e aqui como uso o nXP e nYP ( as porcentagens)

if nWidth   == nil ; ::nWidth    := 60 * nXP ; else ; ::nWidth  := nWidth   * nXP ; endif
      if nHeight  == nil ; ::nHeight   := 60 * nYP ; else ; ::nHeight := nHeight  * nYP ; endif


A coisa é que estou passando um sistema em tela texto em harbour para fivewin, e na versão texto, o usuario escolhe as fontes e cores que preferem.
E o sistema tem que se ajustar de acordo com o tamanho da janela sem perder nenhuma informação, por isso que preciso redefinir as cores e a fonte no inicio da aplicação, que é quando ela carrega as configurações do usuario, e que os valores redefinidos tenhão efeito em toda a aplicação

Se poder me ajudar, ficarei muito agradecido.
Um abraço, t+.
Um abraço a todos.



FiveWin (2.4 - 7.05) - xHarbour (.971 - .961)



Carlson A. Soares - Brasil -São Paulo - SP
Posts: 30
Joined: Tue Apr 17, 2007 07:07 PM
Duvida sobre os #defines
Posted: Wed May 23, 2007 12:16 PM

Pocha, alguém poderia me dar uma dica ai de como fazer isso

Agradecido :!:

:roll::?:

Um abraço a todos.



FiveWin (2.4 - 7.05) - xHarbour (.971 - .961)



Carlson A. Soares - Brasil -São Paulo - SP
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Duvida sobre os #defines
Posted: Wed May 23, 2007 04:23 PM

Si quieres que esos defines funcionen en cualquier PRG entonces debes incluirlo en un fichero CH que se incluya siempre, como FiveWin.ch

En caso contrario, debes usar funciones, en vez de defines, para que esten accesibles desde toda la aplicación

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 56
Joined: Wed May 23, 2007 02:01 PM
Duvida sobre os #defines
Posted: Thu May 24, 2007 12:26 PM
olá,

pelo q entendi vc criou um define no FiveWin.ch e depois está querendo alterar o valor deste define via código em tempo de execução, de acordo com as preferências do usuário. É isso, não é ?

bem se for isso, pelo que eu entendo os defines devem ser utilizados para valores CONSTANTES e não VARIÁVEIS...

neste seu caso, vc deve criar variáveis públicas, que poderão ser alteradas em tempo de execução. Elas pode até estarem atreladas a um define, mas somente como identificadores constantes. Na minha aplicação utilizo alguma coisa assim:

#define COR_TELA   1
#define COR_GET    2
#define COR_SAY    3

// neste caso os defines somente para facilitar a identificação da posição
// dos elementos na tabela

PUBLIC aCores:={ RGB(255,255,255), RGB(255,255,255), RGB(0,0,0) }

// quando vc quiser alterar, vc recarrega os valores na variável pública

aCores[ COR_TELA ] := RGB(   0, 255,   0 )
aCores[ COR_GET  ] := RGB(   0, 255, 255 )
aCores[ COR_SAY  ] := RGB( 255,   0, 255 )


espero ter ajudado

um abraço
Yury Marcelino Al
yury030575@yahoo.com.br
vimansca@vimansca.com.br
Leme / SP - Brasil
Posts: 30
Joined: Tue Apr 17, 2007 07:07 PM
Duvida sobre os #defines
Posted: Mon May 28, 2007 05:36 PM

Ajudou sim, muito aobrigado.

É exatamente oque estava tentando fazer, só não sabia como declarar uma variavel que fosse acessivel de outros documentos, achava que os defines servião para isso...

Mutio obrigado de novo, um abraço.

Um abraço a todos.



FiveWin (2.4 - 7.05) - xHarbour (.971 - .961)



Carlson A. Soares - Brasil -São Paulo - SP

Continue the discussion