Exemplo de Calculadora com wvw

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

edmarfrazao
Usuário Nível 3
Usuário Nível 3
Mensagens: 185
Registrado em: 06 Dez 2005 11:16

Exemplo de Calculadora com wvw

Mensagem por edmarfrazao »

Calculadora que pode ser movimentada na tela com setas
funciona em modo wvw e modo texto, basta configurar

m_amb_graf =1 modo texto
=2 modo wvw

PROCEDURE CALCULADORA && Criada em 20-02-95

local Local1:=[W/B], Local2:=SALVA_TELA()
Private nJanela:=0
Private vTelaAnt:=SALVA_TELA()
PRIVATE COR_PRETO:=[W/B],COR_X1 := [W/B],COR_X2 := [W/B],COR_X3 := [W/B];
,COR_X4 := [W/B],COR_X5 := [W/B],V_COR:="N/W,B/G,N/N,N/N,BR+/N"
PUBLIC parte_cma, parte_bxo, posicao_1, posicao_2, posicao_3, ;
linha_fin, ini_calc, num_calc, som_calc, dec_calc, sin_calc, ;
num_anter, toda, tela_pos1, tela_pos2, tela_pos3
Local1:= SetColor()
setcursor(0)
set color to (cor_preto)




@ 24, 0 clear to 24, 79
tela_pos1:= SaveScreen(0, 1, 23, 40)
tela_pos2:= SaveScreen(0, 21, 23, 60)
tela_pos3:= SaveScreen(0, 39, 23, 78)
rest_tela(vtelaant)
if (Type("liga_calc") = "U")
public liga_calc
liga_calc:= .F.
// posicao_1:= .T.



if (M_AMB_GRAF$[23])
posicao_1:= .F.
posicao_2:= .F.
posicao_3:= .T.
else
posicao_1:= .F.
posicao_2:= .F.
posicao_3:= .T.
endif
Janela()
dec_calc:= 2
linha_fin:= 13
sin_calc:= "C"
num_calc:= ""
som_calc:= ""
num_anter:= ""
toda:= .T.
else
JANELA()
if (linha_fin >= 1)
lin_calc:= linha_fin + 1
else
lin_calc:= 0
endif
if (posicao_2)
if (linha_fin <= 1)
a_d("D")
endif
RestScreen(linha_fin, 23, 14, 56, parte_cma)
RestScreen(15, 21, 22, 58, parte_bxo)
sombra(lin_calc, 57, 15, 59)
sombra(16, 59, 23, 61)
sombra(23, 23, 23, 61)
elseif (posicao_3)
if (linha_fin <= 1)
a_d("D")
endif
RestScreen(linha_fin, 41, 14, 74, parte_cma)
RestScreen(15, 39, 22, 76, parte_bxo)
sombra(lin_calc, 75, 15, 77)
sombra(16, 77, 23, 79)
sombra(23, 41, 23, 79)
elseif (posicao_1)
RestScreen(linha_fin, 3, 14, 36, parte_cma)
RestScreen(15, 1, 22, 38, parte_bxo)
sombra(lin_calc, 37, 15, 39)
sombra(16, 39, 23, 41)
sombra(23, 3, 23, 41)
endif
endif
do while (.T.)
if (Type("ini_calc") = "U" .OR. Type("ini_calc") = "L")
ini_calc:= .F.
endif
if (!ini_calc)
pop_calc()
endif
if (ini_calc)
num_calc:= ""
som_calc:= ""
sin_calc:= "C"
endif
if (Len(num_calc) > 1)
pop_impr(num_calc, sin_calc)
else
pop_impr(som_calc, sin_calc)
endif
do while (.T.)
ctl_calc:= InKey(.1)
if (ctl_calc != 0)
ctl_calc:= LastKey()
//ALTD()
do case
case Upper(Chr(ctl_calc)) = "C" .OR. ctl_calc == 32
if (Len(num_calc) != 0 .OR. Len(som_calc) != 0 .OR. ;
linha_fin != 13)
if (posicao_2 .OR. posicao_2)
if (linha_fin <= 1)
a_d("A")
endif
endif
toda:= .T.
linha_fin:= 13
num_calc:= ""
som_calc:= ""
num_anter:= ""
ini_calc:= .T.
exit
endif
case Upper(Chr(ctl_calc)) = "E"
num_calc:= ""
pop_impr(num_calc, "E")
case CTL_CALC= K_F1 && Upper(Chr(ctl_calc)) = "A"
if (posicao_1)
colz:= 46
else
colz:= 1
endif
TELA:=SALVA_TELA(08,COLZ-1,19,COLZ+29)
nJanela2:=Quadrox(08,COLZ-1,19,COLZ+29)
set color to (cor_x4)
@ 08,COLZ-1 TO 19,COLZ+29
@ 9, colz say " Ajuda da Calculadora "
@ 10, colz say " "
@ 11, colz say " C - Zera Geral "
@ 12, colz say " E - Zera Numero "
@ 13, colz say " D - Muda Casas Decimais "
@ 14, colz say " R - Retorna o Valor "
@ 15, colz say " "
if (M_AMB_GRAF$[123])
@ 16, colz say " - Avan‡a p/ Direita "
@ 17, colz say " - Avan‡a p/ Esquerda "
endif
@ 18, colz say " "
@ 19, colz say " "
@ 16, colz + 3 say Chr(26)
@ 17, colz + 3 say CHR(27)
if (posicao_1)
sombra(10, 77, 21, 79)
sombra(21, 48, 21, 79)
else
sombra(10, 32, 21, 34)
sombra(21, 3, 21, 34)
endif
set color to (cor_x3)
@ 19, colz + 2 say "<< pressione uma tecla >> "
InKey(0)
set color to (cor_x5)
if Fechajanela(nJanela2)
REST_TELA(TELA)
endif
case ctl_calc == 8 && .OR. ctl_calc == 19
if (Len(num_calc) != 0)
if (dec_calc != 0)
if (SubStr(num_calc, Len(num_calc) - 1, 1) = "z.")
num_calc:= Left(num_calc, Len(num_calc) - 2)
else
num_calc:= Left(num_calc, Len(num_calc) - 1)
endif
else
num_calc:= Left(num_calc, Len(num_calc) - 1)
endif
pop_impr(num_calc, sin_calc)
endif
case (ctl_calc == 19) && SETA A ESQUERDA

if (M_AMB_GRAF$[123])
if (posicao_1)
parte_cma:= SaveScreen(linha_fin, 3, 14, 36)
parte_bxo:= SaveScreen(15, 1, 22, 38)
elseif (posicao_2)
parte_cma:= SaveScreen(linha_fin, 23, 14, 56)
parte_bxo:= SaveScreen(15, 21, 22, 58)
elseif (posicao_3)
parte_cma:= SaveScreen(linha_fin, 41, 14, 74)
parte_bxo:= SaveScreen(15, 39, 22, 76)
endif
if (linha_fin >= 1)
lin_calc:= linha_fin + 1
else
lin_calc:= 0
endif
Janela(.T.)

if (posicao_1)
posicao_1:= .F.
posicao_3:= .T.
Janela()

RestScreen(0, 1, 23, 40, tela_pos1)
if (linha_fin <= 1)
a_d("D")
endif
RestScreen(linha_fin, 41, 14, 74, parte_cma)
RestScreen(15, 39, 22, 76, parte_bxo)
sombra(lin_calc, 75, 15, 77)
sombra(16, 77, 23, 79)
sombra(23, 41, 23, 79)
elseif (posicao_2)
posicao_2:= .F.
posicao_1:= .T.
Janela()

RestScreen(0, 21, 23, 60, tela_pos2)
if (linha_fin <= 1)
a_d("A")
endif
RestScreen(linha_fin, 3, 14, 36, parte_cma)
RestScreen(15, 1, 22, 38, parte_bxo)
sombra(lin_calc, 37, 15, 39)
sombra(16, 39, 23, 41)

sombra(23, 3, 23, 41)
elseif (posicao_3)
posicao_3:= .F.
posicao_2:= .T.
Janela()
//altd()

RestScreen(0, 39, 23, 78, tela_pos3)
if (linha_fin <= 1)
a_d("D")
endif
RestScreen(linha_fin, 23, 14, 56, parte_cma)
RestScreen(15, 21, 22, 58, parte_bxo)
sombra(lin_calc, 57, 15, 59)
sombra(16, 59, 23, 61)
sombra(23, 23, 23, 61)
endif
endif
case ctl_calc == 4 && SETA A DIREITA
IF M_AMB_GRAF$[123]

if (posicao_1)
parte_cma:= SaveScreen(linha_fin, 3, 14, 36)
parte_bxo:= SaveScreen(15, 1, 22, 38)
elseif (posicao_2)
parte_cma:= SaveScreen(linha_fin, 23, 14, 56)
parte_bxo:= SaveScreen(15, 21, 22, 58)
elseif (posicao_3)
parte_cma:= SaveScreen(linha_fin, 41, 14, 74)
parte_bxo:= SaveScreen(15, 39, 22, 76)
endif
if (linha_fin >= 1)
lin_calc:= linha_fin + 1
else
lin_calc:= 0
endif
Janela(.T.)


if (posicao_1)
posicao_1:= .F.
posicao_2:= .T.
Janela()

RestScreen(0, 1, 23, 40, tela_pos1)
if (linha_fin <= 1)
a_d("D")
endif
RestScreen(linha_fin, 23, 14, 56, parte_cma)
RestScreen(15, 21, 22, 58, parte_bxo)
sombra(lin_calc, 57, 15, 59)
sombra(16, 59, 23, 61)
sombra(23, 23, 23, 61)
elseif (posicao_2)
posicao_2:= .F.
posicao_3:= .T.

Janela()
RestScreen(0, 21, 23, 60, tela_pos2)
if (linha_fin <= 1)
a_d("D")
endif
RestScreen(linha_fin, 41, 14, 74, parte_cma)
RestScreen(15, 39, 22, 76, parte_bxo)
sombra(lin_calc, 75, 15, 77)
sombra(16, 77, 23, 79)
sombra(23, 41, 23, 79)
elseif (posicao_3)
posicao_3:= .F.
posicao_1:= .T.
Janela()

RestScreen(0, 39, 23, 78, tela_pos3)
if (linha_fin <= 1)
a_d("A")
endif
RestScreen(linha_fin, 3, 14, 36, parte_cma)
RestScreen(15, 1, 22, 38, parte_bxo)
sombra(lin_calc, 37, 15, 39)
sombra(16, 39, 23, 41)
sombra(23, 3, 23, 41)
endif
ENDIF
case ctl_calc = 27 .OR. Upper(Chr(ctl_calc)) = [R]
if (posicao_1)
parte_cma:= SaveScreen(linha_fin, 3, 14, 36)
parte_bxo:= SaveScreen(15, 1, 23, 38)
elseif (posicao_2)
parte_cma:= SaveScreen(linha_fin, 23, 14, 56)
parte_bxo:= SaveScreen(15, 21, 23, 58)
elseif (posicao_3)
parte_cma:= SaveScreen(linha_fin, 41, 14, 74)
parte_bxo:= SaveScreen(15, 39, 23, 76)
endif
if (posicao_1)
RestScreen(0, 1, 23, 40, tela_pos1)
elseif (posicao_2)
RestScreen(0, 21, 23, 60, tela_pos2)
if (linha_fin <= 1)
a_d("A")
endif
elseif (posicao_3)
RestScreen(0, 39, 23, 78, tela_pos3)
if (linha_fin <= 1)
a_d("A")
endif
endif
IF (TYPE(READVAR())=[N] .AND. (LASTKEY() =82 .or. LASTKEY()=114))
&(readvar()) := VAL(SOM_CALC)
IF &(readvar()) # VAL(SOM_CALC)
xxVar:=readvar()
xxArea:=ALIAS()
IF &xxArea->(TYPE(xxVar))#
&xxArea->&xxVar := VAL(SOM_CALC)
ENDIF
ENDIF
endif
ini_calc:= .F.
exit
case Upper(Chr(ctl_calc)) = "D"
PRIVATE GETLIST:={},TELA:=SALVA_TELA(18,0,18,79)
IF (POSICAO_1)
COL_C := 5
ELSEIF (POSICAO_2)
COL_C := 25
ELSEIF (POSICAO_3)
COL_C :=43
ENDIF
@ 18,col_c say [ Quantas Casas Decimais ]
@ 18,col_c+28 get DEC_CALC PICT [9] ;
VALID DEC_CALC >=0 .AND. DEC_CALC <=8
read
rest_tela(tela)
if (Len(num_calc) != 0)
pop_impr(num_calc, sin_calc)
else
pop_impr(som_calc, sin_calc)
endif
case ctl_calc > 47 .AND. ctl_calc < 58
nao_pas:= .T.
if (At(".", alltrim(num_calc)) != 0)
if (Len(alltrim(num_calc)) - At(".", ;
alltrim(num_calc)) < dec_calc)
nao_pas:= .T.
else
nao_pas:= .F.
endif
elseif (dec_calc == 0)
nao_pas:= .F.
endif
if (nao_pas)
num_calc:= num_calc + Chr(ctl_calc)
pop_impr(num_calc, sin_calc)
endif
case Chr(ctl_calc) = "+"
sin_calc:= "+"
if (Len(num_calc) != 0)
som_calc:= Str(Val(num_calc) + Val(som_calc), 25, ;
dec_calc)
num_anter:= num_calc
pop_fita(num_calc, sin_calc)
num_calc:= ""
else
som_calc:= Str(Val(num_anter) + Val(som_calc), 25, ;
dec_calc)
pop_fita(num_anter, sin_calc)
endif
pop_impr(som_calc, sin_calc)
case Chr(ctl_calc) = "-"
sin_calc:= "-"
if (Len(num_calc) != 0)
som_calc:= Str(Val(som_calc) - Val(num_calc), 25, ;
dec_calc)
num_anter:= num_calc
pop_fita(num_calc, sin_calc)
num_calc:= ""
else
som_calc:= Str(Val(som_calc) - Val(num_anter), 25, ;
dec_calc)
pop_fita(num_anter, sin_calc)
endif
pop_impr(som_calc, sin_calc)
case Chr(ctl_calc) = "/" .OR. Chr(ctl_calc) = "*"
if (Chr(ctl_calc) = "/")
sin_calc:= "/"
else
sin_calc:= "*"
endif
if (Len(som_calc) == 0)
som_calc:= num_calc
endif
num_calc:= ""
pop_fita(som_calc, sin_calc)
pop_impr(num_calc, sin_calc)
case Chr(ctl_calc) = "%"
pop_fita(num_calc, "%")
do case
case sin_calc = "/"
som_calc:= Str(Val(som_calc) / (Val(num_calc) / ;
100), 25, dec_calc)
pop_fita(som_calc, "T")
sin_calc:= "="
num_calc:= ""
case sin_calc = "*"
som_calc:= Str(Val(som_calc) * (Val(num_calc) / ;
100), 25, dec_calc)
pop_fita(som_calc, "T")
sin_calc:= "="
num_calc:= ""
case sin_calc = "+"
som_calc:= Str(Val(som_calc) + Val(som_calc) * ;
(Val(num_calc) / 100), 25, dec_calc)
pop_fita(som_calc, "T")
sin_calc:= "="
num_calc:= ""
case sin_calc = "-"
som_calc:= Str(Val(som_calc) - Val(som_calc) * ;
(Val(num_calc) / 100), 25, dec_calc)
pop_fita(som_calc, "T")
sin_calc:= "="
num_calc:= ""
otherwise
som_calc:= Str(Val(som_calc) * (Val(num_calc) / ;
100), 25, dec_calc)
endcase
pop_impr(som_calc, sin_calc)
case ctl_calc = 13 .OR. Chr(ctl_calc) = "="
IF VAL(NUM_CALC)#0
if (Len(sin_calc) != 0)
pri_calc:= pop_conc()
endif
ELSE
pop_fita(SOM_CALC, [T])
ENDIF
if (sin_calc = "=")
pop_fita(num_calc, sin_calc)
endif
sin_calc:= "="
pop_impr(som_calc, sin_calc)
num_calc:= ""
num_anter:=[0]
case Chr(ctl_calc) = "."
if (dec_calc != 0)
num_calc:= num_calc + "."
endif
case Chr(ctl_calc) = ","
if (dec_calc != 0)
num_calc:= num_calc + "."
endif
endcase
endif
enddo
if (!ini_calc)
exit
endif
enddo

if FechaJanela(nJanela)
rest_tela(local2)
endif
rest_tela(vtelaant)
setcursor(1)
set color to (Local1)

return nil

********************************
STATIC function POP_FITA(Arg1, Arg2)

local Local1
set color to (cor_x5)
if (Arg1 != "0" .OR. Arg1 = "0" .OR. Val(Arg1) != 0)
if (linha_fin > 0)
linha_fin--
endif
if (linha_fin >= 1)
Local1:= linha_fin + 1
else
Local1:= 0
endif
if (posicao_1)
Scroll(linha_fin, 3, 14, 36, 1)
col_c:= 5
set color to (cor_x5)
@ 14, 3 say "³ ³"
sombra(Local1, 37, 15, 39)
elseif (posicao_2)
if (linha_fin <= 1)
a_d("D")
endif
Scroll(linha_fin, 23, 14, 56, 1)
col_c:= 25
set color to (cor_x5)
@ 14, 23 say "³ ³"
sombra(Local1, 57, 15, 59)
elseif (posicao_3)
if (linha_fin <= 1)
a_d("D")
endif
Scroll(linha_fin, 41, 14, 74, 1)
col_c:= 43
set color to (cor_x5)
@ 14, 41 say "³ ³"
sombra(Local1, 75, 15, 77)
endif
* set color to "&get_x5,n/w,,,&get_x5"
SET COLOR TO &V_COR
do case
case dec_calc == 0
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 9,999,999,999,999,999,999"
case dec_calc == 1
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999,999,999.9"
case dec_calc == 2
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 99,999,999,999,999,999.99"
case dec_calc == 3
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 9,999,999,999,999,999.999"
case dec_calc == 4
@ 14, col_c + 1 say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999,999.9999"
case dec_calc == 5
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999,999.99999"
case dec_calc == 6
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 99,999,999,999,999.999999"
case dec_calc == 7
@ 14, col_c say Val(alltrim(Arg1)) picture ;
"@E 9,999,999,999,999.9999999"
case dec_calc == 8
@ 14, col_c + 1 say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999.99999999"
endcase
@ 14, col_c + 28 say Arg2
set color to (cor_x5)
if (posicao_1)
parte_cma:= SaveScreen(linha_fin, 3, 14, 36)
parte_bxo:= SaveScreen(0, 1, 23, 40)
elseif (posicao_2)
parte_cma:= SaveScreen(linha_fin, 23, 14, 56)
parte_bxo:= SaveScreen(0, 21, 23, 60)
elseif (posicao_3)
parte_cma:= SaveScreen(linha_fin, 41, 14, 74)
parte_bxo:= SaveScreen(0, 39, 23, 78)
endif
endif
return .T.

********************************
STATIC function POP_CALC

if (toda)
toda:= .F.
if (posicao_1)
RestScreen(0, 1, 14, 40, tela_pos1)
col_c:= 1
elseif (posicao_2)
RestScreen(0, 21, 14, 60, tela_pos2)
col_c:= 21
elseif (posicao_3)
RestScreen(0, 39, 14, 78, tela_pos3)
col_c:= 39
endif
set color to (cor_x5)
@ 13, col_c + 2 say "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"
@ 14, col_c + 2 say "³ ³"
@ 15, col_c + 2 say "³ ³"

// @ 15, col_c + 2 say ALLTRIM(M_LOGOTIPO)
// QUADRO(15,COL_C+2,22,38,ALLTRIM(M_LOGOTIPO))
COR([GETS])
@ 16, col_c+1 say " ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ "
@ 17, col_c+1 say " ³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄ¿³ "
@ 18, col_c+1 say " ³³ ³ ³³ "
@ 19, col_c+1 say " ³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÙ³ "
@ 20, col_c+1 say " ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ "
@ 21, col_c+1 say " [ ] Retorna [ ] Ajuda "
SET COLOR TO &V_COR
@ 21, col_c + 5 say "ESC"
@ 21, col_c + 27 say "F1"
set color to (cor_x5)
if (posicao_1)
sombra(14, 37, 14, 39)
sombra(16, 39, 23, 41)
sombra(23, 3, 23, 41)
elseif (posicao_2)
sombra(14, 57, 14, 59)
sombra(16, 59, 23, 61)
sombra(23, 23, 23, 61)
elseif (posicao_3)
sombra(14, 75, 14, 77)
sombra(16, 77, 23, 79)
sombra(23, 41, 23, 79)
endif
endif
return .T.

* EOF

********************************
STATIC function POP_IMPR(Arg1, Arg2)

if (posicao_1)
lin_c:= 18
col_c:= 5
elseif (posicao_2)
lin_c:= 18
col_c:= 25
elseif (posicao_3)
lin_c:= 18
col_c:= 43
endif
* set color to "&get_x5,n/w,,,&get_x5"
SET COLOR TO &V_COR
do case
case dec_calc == 0
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 9,999,999,999,999,999,999"
case dec_calc == 1
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999,999,999.9"
case dec_calc == 2
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 99,999,999,999,999,999.99"
case dec_calc == 3
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 9,999,999,999,999,999.999"
case dec_calc == 4
@ lin_c, col_c + 1 say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999,999.9999"
case dec_calc == 5
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999,999.99999"
case dec_calc == 6
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 99,999,999,999,999.999999"
case dec_calc == 7
@ lin_c, col_c say Val(alltrim(Arg1)) picture ;
"@E 9,999,999,999,999.9999999"
case dec_calc == 8
@ lin_c, col_c + 1 say Val(alltrim(Arg1)) picture ;
"@E 999,999,999,999.99999999"
endcase
@ lin_c, col_c + 28 say Arg2
set color to (cor_x5)
return .T.

STATIC function A_D(Arg1)
return .T.




********************************
STATIC function POP_CONC
do case
case Len(num_calc) != 0
do case
case sin_calc = "+"
som_calc:= Str(Val(som_calc) + Val(num_calc), 25, 8)
case sin_calc = "-"
som_calc:= Str(Val(som_calc) - Val(num_calc), 25, 8)
case sin_calc = "*"
som_calc:= Str(Val(som_calc) * Val(num_calc), 25, 8)
case sin_calc = "/"
som_calc:= Str(Val(som_calc) / Val(num_calc), 25, 8)
endcase
case sin_calc = "+"
som_calc:= Str(Val(som_calc) + Val(num_anter), 25, 8)
case sin_calc = "-"
som_calc:= Str(Val(som_calc) - Val(num_anter), 25, 8)
case sin_calc = "*"
som_calc:= Str(Val(som_calc) * Val(num_anter), 25, 8)
case sin_calc = "/"
som_calc:= Str(Val(som_calc) / Val(num_anter), 25, 8)
endcase
if (sin_calc != "=" .AND. Chr(ctl_calc) != "%")
if (Chr(ctl_calc) != "+" .AND. Chr(ctl_calc) != "-")
pop_fita(num_calc, "=")
pop_fita(som_calc, "T")
else
pop_fita(num_calc, Chr(ctl_calc))
endif
endif
return .T.

STATIC FUNCTION SOMBRA(LS,CS,LI,CI)
RETURN .T.

static function Janela(vFecha)
if M_AMB_GRAF$[1]
RETURN NIL
ENDIF


if vFecha<>NIL
FechaJanela(nJanela)
Rest_Tela(vTelaAnt)
else
if (posicao_1)
nJanela:=Quadrox(0,0 ,23,39,[Calculadora],.T.) // pos3
// SETCOLOR(eCorJanela)
// @ 0,0 CLEAR TO 23,39


elseif (posicao_2)
nJanela:=Quadrox(0,21,23,60,[Calculadora],.T.) // pos1
// SETCOLOR(eCorJanela)
// @ 0,21 CLEAR TO 23,60

elseif (posicao_3)
nJanela:=Quadrox(0,39,23,78,[Calculadora],.T.) // pos1
// SETCOLOR(eCorJanela)
// @ 0,39 CLEAR TO 23,78
endif

endif
//altd()
return nil

RestScreen(0, 1, 23, 40, tela_pos1)

RestScreen(0, 21, 23, 60, tela_pos2)

RestScreen(0, 39, 23, 78, tela_pos3)
if (linha_fin <= 1)
a_d("A")
endif
RestScreen(linha_fin, 3, 14, 36, parte_cma)
RestScreen(15, 1, 22, 38, parte_bxo)
sombra(lin_calc, 37, 15, 39)
sombra(16, 39, 23, 41)
sombra(23, 3, 23, 41)
//endif



********************************************************************
FUNCTION SALVA_TELA(LS,CS,LI,CI) &&F010
LS:=IF (LS=NIL,2,LS)
CS:=IF (CS=NIL,0,CS)
LI:=IF (LI=NIL,24,LI)
CI:=IF (CI=NIL,79,CI)
RETURN STRZERO(LS,2)+STRZERO(CS,2)+STRZERO(LI,2)+STRZERO(CI,2);
+SAVESCREEN(LS,CS,LI,CI)

FUNCTION REST_TELA(TELA)
RESTSCREEN(VAL(SUBS(TELA,1,2)),VAL(SUBS(TELA,3,2)),VAL(SUBS(TELA,5,2)),;
VAL(SUBS(TELA,7,2)),SUBS(TELA,9))
RETURN NIL
********************************************************************

FUNCTION QUADROx(LS,CS,LI,CI,TEX,vLimpa)
Local nJanela:=[],vTexto:=[]
Local xLImpa:=.t.
if vLImpa=nil
xLimpa:=.t.
else
xLimpa:=vLimpa
endif

if M_AMB_GRAF$[1]
return Quadro(LS,CS,LI,CI,TEX)
ENDIF

#ifdef __XHARBOUR__
IF LS=NIL
LS=3
ENDIF
IF CS=NIL
CS=1
ENDIF
IF LI=NIL
LI=21
ENDIF
IF CI=NIL
CI=78
ENDIF
nJanela:=wvw_nOpenWindow(,LS,CS,LI,CI)
wvw_SetTitle(,hb_oemTOansI(Tex))
SETCOLOR(eCorJanela)

if vLimpa=nil .or. vLImpa
@ LS,CS CLEAR TO LI,CI
endif
#endif
RETURN nJanela


function FechaJanela(xJanela)
Local vRetorno:=.t.
#ifdef __XHARBOUR__
if M_AMB_GRAF$[23]
if xJanela#0
WVW_lCloseWindow(xJanela)
vRetorno:=.f.
COR([GETS])
endif
endif
#endif

return vRetorno

function cor()
return nil

function quadro()
return nil

function bot_atalho()
return nil
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, legal sua iniciativa....mas se não se importa gostaria de falar que vc pode postar lah na SEÇÃO de CODIGO FONTES e colocar dentro de CODE ..para melhor visualizar pelos colegas....e parabens !!

Abraços
Leonardo machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder