primiro teste

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

primiro teste

Mensagem por gera som djs »

Olha só pessoal eu fiz um teste mais o teste.exe ta muito rapido
alguem sabew me dizer pq e como devo resolver.

Um abraço


Desde ja agradeço
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Na maior parte das aplicações, quanto mais rápido o programa executar, melhor. Porque isso é um problema pra você?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

descupas

Mensagem por gera som djs »

Olha só maligno
me especifiquei mal, o meu problema é o seguinte
eu cliquei nele e em vez de ele abrir ele abre muito ligeiro e fecha
entendeu o que eu posso fazer.

Desde ja agradeço
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Cara , posta seu fonte aqui pra gente dar uma olhada , assim fica dificil alguem saber exatamente o que voce precisa...

Poste aqui as linhas que voce digitou o arquivo *.prg :)Pos
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

Ola
sera que tem alguem com codigos
de cadastros de clientes para me consequir


Desde de ja agradeço
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ah, sim. Agora entendi. Mas pelo menos você consegue perceber se ele imprime alguma mensagem?
Outra coisa: um "chute", aliás. Tente compilar com, por exemplo, clipper test /n.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

Ai vai...
func main //obrigatorio
@ 10,10 say "meu primeiro exemplo"
inkey()
return
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

func main //obrigatorio
Não é obrigatório. Mas isso explica por quê não deu certo. Compile da forma que eu disse, usando /n.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

o erro esta no inkey() , serve para voce passar um parametro de tempo ex:


inkey(0) //enquanto ñ teclar nada o prg fica parado

inkey(5)// espera 5 segundos para continuar a execução


saco a moral põe no seu teste , inkey(0)

:|<
C:\Xharbour\Xdev\Fw\VSX
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Código: Selecionar todos


main()

func main()

@ 10,10 say "meu primeiro exemplo"
inkey(0)
return


Esse lance de func main() obrigatório é pra xharbour e ñ para clipper "puro"
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

ok consequi Obrigado
meu proximo passo é criar um modulo
cadastro
cadastro de clientes
alguem tem alguns codigos ai pra me passar
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

Olha só alguem pode me explicar como eu faço pra executar esse exemplo:
* * * * * * * * * * * * * * * * * * * *
* PROGRAMA: CALC.PRG *
* FUN€ŽO..: CALCULADORA *
* AUTOR...: ANDERSON CARDOSO SILVA *
* * * * * * * * * * * * * * * * * * * *
calcu()

FUNCTION CALCu(0)

#INCLUDE "INKEY.CH"
#INCLUDE "MOUSE.CH"
*-------------------------
*** COMANDO: "BOTAO" - VERSAO CALCULADORA
*** POR....: ANDERSON CARDOSO SILVA
*** DATA...: 09/01/96
#COMMAND @ <XYZlin>,<XYZcol> BOTAO <XYZnome> [SOMBRA <XYZcor>] [MENSAGEM <XYZmens>] [COM <XYZcor2>] [TECLA <XYtecla>];
=> ;
CBOTAO(<XYZlin>, <XYZcol>, <XYZnome>, <XYZcor>, <XYZmens>, <XYZcor2>, <XYtecla>)

#COMMAND PRESSIONE <XYZopcao>;
=> ;
<XYZopcao>:=CLEBOTAO(<XYZopcao>)

MR:=ARRAY(4)
aCBOTAOpars:={}

PUBLIC aCBOTAOpars, nBUTTONS, RATO, MR

IF MOUSEINIT(@nBUTTONS)
RATO:=1
ELSE
RATO:=0
ENDIF
*---------------------------

OLD=SETCOLOR()
VELHO=SETCURSOR()
SETCURSOR(0)
SET SCOREBOARD OFF
ZX=SAVESCREEN(00,00,24,79)
N:=""; DEC:=3; XX:=40; YY:=10; CA=.T.; OLDXX:=XX; OLDYY:=YY; Z:=1; RES:=ARRAY(3); RES[1]:=""; RES[2]:=""; RES[3]:=""; OM:=0
PUBLIC N, RES, XX, YY, TEI, TEC, OLDXX, OLDYY, Z, OM
// CARA
BOXSHADOW(YY-2,XX-3,YY+12,XX+29,"W/B")
DISPBOX(YY-2,XX-3,YY+12,XX+29,"ܲÜÛÛÜÛÛ","BG/B")
PLAK(YY-1,XX-1,YY+1,XX+27,"B")
//-----
SETCOLOR("N/W")
*-------
DO WHILE CA=.T.
@ YY+2,XX+8 BOTAO " &CE " SOMBRA "N+/B"
@ YY+2,XX+19 BOTAO " &/ " SOMBRA "N+/B"
@ YY+4,XX+24 BOTAO " &* " SOMBRA "N+/B"
@ YY+6,XX+24 BOTAO " &- " SOMBRA "N+/B"
* @ 14,71 SAY " "
@ YY+8,XX+24 BOTAO " &+ " SOMBRA "N+/B"
* @ 16,71 SAY " "
* @ 18,71 SAY " "
@ YY+10,XX+20 BOTAO " &= <Ù " SOMBRA "N+/B"
* @ 20,70 SAY CHR(27)+"Ù"
@ YY+8,XX-1 BOTAO " F5 " SOMBRA "N+/B" TECLA K_F5
@ YY+8,XX+5 SAY "Mov" COLOR "W+/B"
@ YY+10,XX-1 BOTAO " &S " SOMBRA "N+/B"
@ YY+10,XX+4 SAY "Sai" COLOR "W+/B"
@ YY+4,XX+9 BOTAO " &7 " SOMBRA "N+/B"; @ YY+4 ,XX+14 BOTAO " &8 " SOMBRA "N+/B"; @ YY+4,XX+19 BOTAO " &9 " SOMBRA "N+/B"
@ YY+6,XX+9 BOTAO " &4 " SOMBRA "N+/B"; @ YY+6 ,XX+14 BOTAO " &5 " SOMBRA "N+/B"; @ YY+6,XX+19 BOTAO " &6 " SOMBRA "N+/B"
@ YY+8,XX+9 BOTAO " &1 " SOMBRA "N+/B"; @ YY+8 ,XX+14 BOTAO " &2 " SOMBRA "N+/B"; @ YY+8,XX+19 BOTAO " &3 " SOMBRA "N+/B"
@ YY+10,XX+9 BOTAO " &0 " SOMBRA "N+/B"; @ YY+10,XX+14 BOTAO " &. " SOMBRA "N+/B"
@ YY+2,XX-1 BOTAO " F2 " SOMBRA "N+/B" TECLA K_F2; @ YY+2 ,XX+5 SAY "a" COLOR "W+/B"; @ YY+2 ,XX+6 SAY "ü" COLOR "R+/B"
@ YY+4,XX-1 BOTAO " F3 " SOMBRA "N+/B" TECLA K_F3; @ YY+4 ,XX+5 SAY "û" COLOR "W+/B"
@ YY+6,XX-1 BOTAO " F4 " SOMBRA "N+/B" TECLA K_F4; @ YY+6 ,XX+5 SAY "%" COLOR "W+/B"
@ YY+2,XX+14 BOTAO " "+CHR(27)+" " SOMBRA "N+/B" TECLA K_BS
PK2:=SAVESCREEN(YY-2,XX-3,YY+12,XX+29)
*--------
//
KEYBOARD K_INS; TEC:=6
DO WHILE CA=.T.
IF (OLDXX<>XX .OR. OLDYY<>YY) .OR. (OLDXX<>XX .AND. OLDYY<>YY)
RESTSCREEN(00,00,24,79,ZX)
BOXSHADOW(YY-2,XX-3,YY+12,XX+29,"W/B,N/GR")
RESTSCREEN(YY-2,XX-3,YY+12,XX+29,PK2)
@ YY+08,XX SAY "F5" COLOR "N/W"
OLDXX:=XX; OLDYY:=YY
ENDIF
IF !EMPTY(RES[2])
@ YY,XX SAY IF(VALTYPE(RES[Z])="C", VAL(RES[Z]), RES[Z]) PICT "9999999999999999999999.9999" COLOR "N/GR"
ELSE
@ YY,XX SAY IF(VALTYPE(RES[1])="C", VAL(RES[1]), RES[1]) PICT "9999999999999999999999.9999" COLOR "N/GR"
ENDIF

PRESSIONE TEC //; IF VALTYPE(RES)="N"; RES=STR(RES); ENDIF
IF Z=3
Z:=2
ENDIF
IF TEC=6 .AND. EMPTY(RES[2])
EXIT
ENDIF

DO CASE
CASE TEC=9
RES[Z]:=RES[Z]+"7"
CASE TEC=10
RES[Z]:=RES[Z]+"8"
CASE TEC=11
RES[Z]:=RES[Z]+"9"
CASE TEC=12
RES[Z]:=RES[Z]+"4"
CASE TEC=13
RES[Z]:=RES[Z]+"5"
CASE TEC=14
RES[Z]:=RES[Z]+"6"
CASE TEC=15
RES[Z]:=RES[Z]+"1"
CASE TEC=16
RES[Z]:=RES[Z]+"2"
CASE TEC=17
RES[Z]:=RES[Z]+"3"
CASE TEC=18
RES[Z]:=RES[Z]+"0"
CASE TEC=19
RES[Z]:=RES[Z]+"."
CASE TEC=1
RES[1]:=""
RES[2]:=""
RES[3]:=""
Z:=1 // CE
*----- HABILITACOES DA CALCULADORA
CASE TEC=2
Z:=DIVIDE()
OM:=1
CASE TEC=3
Z:=MULTIPLICA()
OM:=2
CASE TEC=4
Z:=SUBTRAI()
OM:=3
CASE TEC=5
Z:=SOMA()
OM:=4
CASE TEC=20
Z:=EXPOENTE()
OM:=5
CASE TEC=21
Z:=RAIZ()
OM:=6
CASE TEC=22
Z:=PORCENTAGEM()
OM:=7
*-----
CASE TEC=6
Z:=RESULT()
CASE TEC=23
RES[Z]:=SUBSTR(RES[Z],1,LEN(RES[Z])-1)
CASE TEC=7
MOVE()
CASE TEC=8
SAICALC()
ENDCASE
* @ YY,XX SAY REPLI(" ",23) COLOR "N/GR"
IF VALTYPE(RES[Z])="C"
@ YY,XX SAY VAL(RES[Z]) PICT "9999999999999999999999.9999" COLOR "N/GR"
ENDIF
IF VALTYPE(RES[Z])="N"
@ YY,XX SAY RES[Z] PICT "9999999999999999999999.9999" COLOR "N/GR"
ENDIF
EXIT
ENDDO
ENDDO
RESTSCREEN(00,00,24,79,ZX); SETCURSOR(VELHO); SETCOLOR(OLD)
RETURN


FUNC SAICALC
CA=.F.; RESTSCREEN(00,00,24,79,ZX)
MOUSEOFF()
RETURN (CA)
FUNC MOVE
@ YY+08,XX SAY "F5" COLOR "N*/W"; MM:={ {}, {}, {}, {} }
PK2:=SAVESCREEN(YY-2,XX-3,YY+12,XX+29)
AA=0
DO WHILE .T.
AA:=INKEY()
MOUSEREAD(MM) // LEFT, RIGHT, ROW, COL
MOUSEON()
OLDXX:=XX; OLDYY:=YY
DO CASE
CASE AA==K_UP
YY--
CASE AA==K_DOWN
YY++
CASE AA==K_LEFT
XX--
CASE AA==K_RIGHT
XX++
CASE MM[1]==.T. .OR. MM[2]==.T.
IF MM[3]==YY-2 .AND. MM[4]>=XX-3 .AND. MM[4]<=XX+25
MPOSL:=MM[3]; MPOSC:=MM[4]
DO WHILE MM[1]==.T. .OR. MM[2]==.T.
MOUSEREAD(MM)
IF MM[3]<MPOSL
YY:=YY-(MPOSL-MM[3])
ELSEIF MM[3]>MPOSL
YY:=YY+(MM[3]-MPOSL)
ENDIF
IF MM[4]<MPOSC
XX:=XX-(MPOSC-MM[4])
ELSEIF MM[4]>MPOSC
XX:=XX+(MM[4]-MPOSC)
ENDIF
IF MM[3]<>MPOSL .OR. MM[4]<>MPOSC .OR. MM[3]<>MPOSL .AND. MM[4]<>MPOSC
IF (XX-3) <=0 ; XX:=3; ENDIF
IF (XX+29)>=77; XX:=48; ENDIF
IF (YY-2) <=0 ; YY:=2; ENDIF
IF (YY+12)>=24; YY:=12; ENDIF
RESTSCREEN(00,00,24,79,ZX)
BOXSHADOW(YY-2,XX-3,YY+12,XX+29,"W/B")
RESTSCREEN(YY-2,XX-3,YY+12,XX+29,PK2)
MPOSL:=MM[3]; MPOSC:=MM[4]
ENDIF
ENDDO
EXIT
ENDIF
ENDCASE
IF (XX-3) <=0 ; XX=3; ENDIF
IF (XX+29)>=77; XX=48; ENDIF
IF (YY-2) <=0 ; YY=2; ENDIF
IF (YY+12)>=24; YY=12; ENDIF
IF XX<>OLDXX .OR. YY<>OLDYY
RESTSCREEN(00,00,24,79,ZX)
BOXSHADOW(YY-2,XX-3,YY+12,XX+29,"W/B")
RESTSCREEN(YY-2,XX-3,YY+12,XX+29,PK2)
ENDIF
IF AA==K_F5 .OR. AA==K_ESC; @ YY+08,XX SAY "F5" COLOR "N/W"; EXIT; ENDIF
ENDDO
RESTSCREEN(00,00,24,79,ZX)
BOXSHADOW(YY-2,XX-3,YY+12,XX+29,"W/B")
RESTSCREEN(YY-2,XX-3,YY+12,XX+29,PK2)
RETURN

FUNC SOMA()
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])+VAL(RES[2])) // SOMA
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC SUBTRAI
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])-VAL(RES[2])) // SUBTRAI
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC MULTIPLICA
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])*VAL(RES[2])) // MULTIPLICA
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC DIVIDE
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])/VAL(RES[2])) // DIVIDE
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC EXPOENTE
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])**VAL(RES[2])) // EXPOENTE
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC RAIZ
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])**1/(VAL(RES[2]))) // RAIZ
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC PORCENTAGEM
IF Z=1
Z:=2
RETURN Z
ENDIF
IF Z=2 .AND. !EMPTY(RES[2])
RES[3]:=STR(VAL(RES[1])*(VAL(RES[2])/100)) // PORCENTAGEM
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ELSE
Z := 2
RETURN Z
ENDIF
RETURN Z
FUNC RESULT
IF Z=2
DO CASE
CASE OM=1
RES[3]:=STR(VAL(RES[1])/VAL(RES[2])) // DIVIDE
CASE OM=2
RES[3]:=STR(VAL(RES[1])*VAL(RES[2])) // MULTIPLICA
CASE OM=3
RES[3]:=STR(VAL(RES[1])-VAL(RES[2])) // SUBTRAI
CASE OM=4
RES[3]:=STR(VAL(RES[1])+VAL(RES[2])) // SOMA
CASE OM=5
RES[3]:=STR(VAL(RES[1])**VAL(RES[2])) // EXPOENTE
CASE OM=6
RES[3]:=STR(VAL(RES[1])**(1/(VAL(RES[2])))) // RAIZ
CASE OM=7
RES[3]:=STR(VAL(RES[1])*(VAL(RES[2])/100)) // PORCENTAGEM
ENDCASE
Z:=3
RES[1]:=RES[3]
RES[2]:=""
ENDIF
RETURN Z


******************************************************** FIM CALCULADORA
FUNCTION BoxShadow( nTop, nLeft, nBottom, nRight, cCOLOR)
LOCAL nShadTop
LOCAL nShadLeft
LOCAL nShadBottom
LOCAL nShadRight
nShadTop := nShadBottom := MIN( nBottom + 1, MAXROW() )
nShadLeft := nLeft + 2
nShadRight := MIN( nRight + 1, MAXCOL() )
// This paints the shadow region by replacing the actual screen color
// attributes with "" (CHR(7), low intensity white on black) which
// gives the illusion of a shadow
RESTSCREEN( nShadTop, nShadLeft, nShadBottom, nShadRight, ;
TRANSFORM( SAVESCREEN(nShadTop, nShadLeft, nShadBottom, nShadRight), ;
REPLICATE("X", nShadRight - nShadLeft + 1 ) ) )
nShadTop := nTop + 1
nShadLeft := nShadRight := MIN( nRight + 1, MAXCOL() )
nShadBottom := nBottom
RESTSCREEN( nShadTop, nShadLeft, nShadBottom, nShadRight, ;
TRANSFORM( SAVESCREEN(nShadTop, nShadLeft, nShadBottom, nShadRight), ;
REPLICATE("X", nShadBottom - nShadTop + 1 ) ) )
RESTSCREEN( nTop+1, nRight+2, nBottom+1, nRight+2, ;
TRANSFORM( SAVESCREEN(nTop+1, nRight+2, nBottom+1, nRight+2), ;
REPLICATE("X", nBottom+1 - nTop + 1 ) ) )
SETCOLOR(cCOLOR)
@ nTop, nLeft CLEA TO nBottom, nRight
@ nTop, nLeft TO nBottom, nRight
RETURN ( NIL )

FUNC PLAK(L1,C1,L2,C2,BAC)
OLD=SETCOLOR(); SETCOLOR("N/W"); @ L1,C1 CLEA TO L2,C2
PC1="N+/"+BAC; PC2="R/"+BAC; PC3="R+/"+BAC
@ L1,C1 SAY REPLI("Ü",C2-C1) COLOR PC1
@ L1,C2 SAY "Ü" COLOR PC2; Z=(L2-L1)-1
FOR Y=0 TO Z; @ L1+1+Y,C1 SAY "Û" COLOR PC1; NEXT
FOR Y=0 TO Z; @ L1+1+Y,C2 SAY "Û" COLOR PC3; NEXT
@ L2,C1 SAY REPLI("ß",(C2-C1)+1) COLOR PC3
@ L2,C1 SAY "ß" COLOR PC2; SETCOLOR(OLD)
RETURN

*** FUN€”ES DE BASE DO COMANDO "BOTAO" COM SUPORTE PARA MOUSE (V. CALC.)
*** POR: ANDERSON CARDOSO SILVA
****************
FUNC CBOTAO(MSLN,MSCN,MSNOME,MSCOR,MSMENSAGEM,MSCOR2,MSALT)
MSOLDCOLOR:=SETCOLOR()
IF EMPTY(MSCOR)
MSBAC:=SUBSTR(MSOLDCOLOR,3,2)
IF SUBSTR(MSBAC,2,1)=","
MSBAC:=SUBSTR(MSBAC,1,1)
ENDIF
MSCOR:="N/"+MSBAC
ENDIF
IF (MSTECLA:=AT("&",MSNOME))>0
MSNOME:=SUBSTR(MSNOME,1,MSTECLA-1) + SUBSTR(MSNOME,MSTECLA+1)
ENDIF
@ MSLN,MSCN SAY MSNOME COLOR "N/W"// MESSA {||MENSA(MENSAGEM, COR2)}
@ MSLN+1,MSCN+1 SAY REPLI("ß",LEN(MSNOME)) COLOR MSCOR; @ MSLN,MSCN+LEN(MSNOME) SAY "Ü" COLOR MSCOR
AADD(aCBOTAOpars, {MSLN, MSCN, MSNOME, MSCOR, MSMENSAGEM, MSCOR2, MSTECLA, MSALT})
RETURN
****************

FUNC CLEBOTAO(OPC)
MSOLD:=SETCOLOR()
FOR T=1 TO LEN(aCBOTAOpars)
MSLN := aCBOTAOpars[T][1]
MSCN := aCBOTAOpars[T][2]
MSNOME := aCBOTAOpars[T][3]
MSCOR := aCBOTAOpars[T][4]
MSTECLA := aCBOTAOpars[T][7]
@ MSLN,MSCN SAY MSNOME COLOR "N/W"
IF !EMPTY(MSTECLA)
MSATALHO:=SUBSTR(MSNOME,MSTECLA,1)
* @ MSLN,MSCN+MSTECLA-1 SAY MSATALHO COLOR "R+/W"
ENDIF
NEXT
IF EMPTY(OPC); OPC:=1; ENDIF
CURS:=SETCURSOR(); SETCURSOR(0) // SETCOLOR("n/w, N*/w")
R:=OPC; OLDR:=R; CURSOR:=0; MSLN:=aCBOTAOpars[R][1]; MSCN:=aCBOTAOpars[R][2]; MSNOME:=aCBOTAOpars[R][3]; MSTECLA:=aCBOTAOpars[R][7]; MSALT:=aCBOTAOpars[R][8]

DO WHILE CURSOR<>27 .AND. CURSOR<>13 .AND. OLDR=R
@ MSLN,MSCN SAY MSNOME COLOR "N/W"
IF !EMPTY(MSTECLA)
MSATALHO:=SUBSTR(MSNOME,MSTECLA,1)
* @ MSLN,MSCN+MSTECLA-1 SAY MSATALHO COLOR "R+/W"
ENDIF

MSLN := aCBOTAOpars[R][1]
MSCN := aCBOTAOpars[R][2]
MSNOME := aCBOTAOpars[R][3]
MSCOR := aCBOTAOpars[R][4]
MSMENSAGEM := aCBOTAOpars[R][5]
MSCOR2 := aCBOTAOpars[R][6]
MSTECLA := aCBOTAOpars[R][7]
MSALT := aCBOTAOpars[R][8]

@ MSLN,MSCN SAY MSNOME COLOR "N*/W"

IF EMPTY(MSCOR2); MSCOR2:="B/BG"; ENDIF
IF !EMPTY(MSMENSAGEM)
@ 24,10 SAY MSMENSAGEM+REPLI(" ",69-LEN(MSMENSAGEM)) COLOR MSCOR2
ENDIF

DO WHILE CURSOR<>27 .AND. CURSOR<>13 .AND. OLDR=R
CURSOR:=INKEY() // ********************
OLDR:=R
IF CURSOR==4 .OR. CURSOR==24
IF R<LEN(aCBOTAOpars)
R++
ELSEIF R==LEN(aCBOTAOpars)
IF SET(_SET_WRAP)
R:=1
ENDIF
ENDIF
ELSEIF CURSOR==19 .OR. CURSOR==5
IF R>1
R--
ELSEIF R==1
IF SET(_SET_WRAP)
R:=LEN(aCBOTAOpars)
ENDIF
ENDIF
ENDIF
*** TECLA ATALHO ***
// EXPLICITA
IF (ACHOU:=ASCAN(aCBOTAOpars, {|aBOTAO| UPPER(SUBSTR(aBOTAO[3],aBOTAO[7],1))==UPPER(CHR(CURSOR))})) > 0
R:=ACHOU
ENDIF
// IMPLICITA
IF (ACHOU:=ASCAN(aCBOTAOpars, {|aBOTAO| aBOTAO[8]==CURSOR})) > 0
R:=ACHOU
ENDIF
*** SERVI€O DE MOUSE ***
IF RATO=1
MOUSEON()
MOUSEREAD(MR)
IF (ACHOU:=ASCAN(aCBOTAOPARS, {|aBOTAO| MR[3]==aBOTAO[1] .AND. MR[4]>=aBOTAO[2] .AND. MR[4]<=(aBOTAO[2]+LEN(aBOTAO[3])) } )) > 0
IF MR[1]=.T. .OR. MR[2]=.T.
CURSOR:=13; R:=ACHOU
ENDIF
* ELSE
* IF MR[1]=.T. .OR. MR[2]=.T.
* R:=0
* CURSOR:=27
* ENDIF
ENDIF
ENDIF
IF OLDR<>R; EXIT; ENDIF
ENDDO
ENDDO
*-----
@ MSLN,MSCN SAY MSNOME COLOR "N/W"

MSLN := aCBOTAOpars[R][1]
MSCN := aCBOTAOpars[R][2]
MSNOME := aCBOTAOpars[R][3]
MSCOR := aCBOTAOpars[R][4]
MSMENSAGEM := aCBOTAOpars[R][5]
MSCOR2 := aCBOTAOpars[R][6]
MSTECLA := aCBOTAOpars[R][7]
MSALT := aCBOTAOpars[R][8]

@ MSLN,MSCN SAY MSNOME COLOR "N*/W"

IF EMPTY(MSCOR2); MSCOR2:="B/BG"; ENDIF
IF !EMPTY(MSMENSAGEM)
@ 24,10 SAY MSMENSAGEM+REPLI(" ",69-LEN(MSMENSAGEM)) COLOR MSCOR2
ENDIF
*------
* IF CURSOR==27
* R:=0
* SETCURSOR(CURS)
* aBOTAOpars:={}; MR:={ {}, {}, {}, {}}
* IF RATO=1; MOUSEOFF(); ENDIF
* RETURN R
* ENDIF
B1=SAVESCREEN(MSLN,MSCN,MSLN+1,((MSCN+1)+LEN(MSNOME)))
SETCOLOR(MSCOR)
@ MSLN,MSCN CLEA TO MSLN+1,(MSCN+1)+LEN(MSNOME)
@ MSLN,MSCN+1 SAY MSNOME COLOR "N*/W"
//TONE(130,2)
nKEYPAUSE := 0
nKEYPAUSE := INKEY(.1)
IF nKEYPAUSE # 0
KEYBOARD CHR(nKEYPAUSE)
ENDIF
@ MSLN,MSCN CLEA TO MSLN+1,(MSCN+1)+LEN(MSNOME)
RESTSCREEN(MSLN,MSCN,MSLN+1,((MSCN+1)+LEN(MSNOME)),B1)
//TONE(130,1)
SETCURSOR(CURS)
aCBOTAOpars:={}; MR:={ {}, {}, {}, {} }
IF RATO=1; MOUSEOFF(); ENDIF
RETURN R


e o que ta errado ai.


Desde de ja agradeço
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

hehhehe!!!

Primeiro programa e já ta na onda do "func main()"?/ rsrs

Deixa disso, escrever "function" não cai a mão de ninguém.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

como assim??
???
??????
???????
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

Tambem naum tem ninguem pra me ensinar
o que eu tenho pra fazer passo a passo se tivese alguem eu naum taria postando essas perguntas idiotas no forum e tirando o tempo de vcis. :|<
Responder