Código: Selecionar todos
#define IDYES 6
#define WIN_MB_YESNO 0x00000004
#define WIN_MB_DEFBUTTON2 0x00000100
#define WIN_MB_ICONQUESTION 0x00000020
Moderador: Moderadores

Código: Selecionar todos
#define IDYES 6
#define WIN_MB_YESNO 0x00000004
#define WIN_MB_DEFBUTTON2 0x00000100
#define WIN_MB_ICONQUESTION 0x00000020

Código: Selecionar todos
@ 00,00 clear to maxrow (),maxcol ()
Código: Selecionar todos
CLS
Por:setcolor (SALVA_COR)
@ 00,00 clear to maxrow (),maxcol ()
@ 00,00 say 'Acesso negado ...'
@ 01,00 say 'Arquivo de Controle Alterado !'
@ 02,00 say "Pressione para encerrar..." // acrescentada em 05/09/11w
inkey(0) // coloquei provisoriamente pra ver onde o SiCCA deu erro - 06/09/11w
exit

Prezado "JQuintas" mas, isso já foi add inclusive com todos os outros na lista de uns 15 itens que V.Sa. já recomendou que fizéssemos na página anterior (página 2 deste tópico).JoséQuintas escreveu:Acrescente no início:
Expandir visualizacao
Ver codigo
1 #define IDYES 6
2 #define WIN_MB_YESNO 0x00000004
3 #define WIN_MB_DEFBUTTON2 0x00000100
4 #define WIN_MB_ICONQUESTION 0x00000020
Prezado "asimoes" já a sua recomendação não compreendi corretamente:asimoes escreveu:Tem provavelmente um erro na sua rotina, quando você faz o loop você está fazendo aadd novamente (linhas 5 e 6)
O define WIN_MB_YESNO
Você tem no include hbwin.ch
Caro professor, contigo só tenho a aprender, mas, nesse quesito ainda não compreendi o que V.Sa. quer me dizer, pois, já por 2 vezes diz a mesma coisa.JoséQuintas escreveu:Ao invés de se preocupar com novos recursos, porque não melhora os antigos primeiro?
Então, aí é um outro quesito que não entendi, pois isso tudo é o básico e já tem em todos os locais do meu sistema, ou V.Sa. quer dizer que é pra eliminar isso? se é pra eliminar, o que substituir? Pois em alguns lugares uso claramente CLS e noutros preferi o @ clear maxrow/col pois fiz um padrão de desenvolvimento do aplicativo módulo a módulo e até hoje quando preciso criar um novo módulo vou até esse meu gerador de códigos (que desenvolvi em 1997) e tudo fica muito bem organizado. Aliás o CLS foi colocado manualmente por mim nalguns lugares, fugindo assim da estética que eu mesmo criei.JoséQuintas escreveu:porque não melhora os antigos primeiro?Não seria mais interessante:Código: Selecionar todos
@ 00,00 clear to maxrow (),maxcol ()Código: Selecionar todos
CLS
Então, prezado professor, acho que entendo o que V.Sa. quer me passar... pois então, é o que vou fazer, como estou mudando por partes, vou alterando e vendo os resultados, e, comecei com as mensagens de SIM/NÃO (msgYesNo) e como elas estão agarrando (dando pau), quero primeiro corrigi-las para depois seguir em frente... aliás já substituí locais onde já migrei para MSGinfo e MsgExclamation.asimoes escreveu:Eu trocaria todas estas linhas:Código: Selecionar todos
setcolor (SALVA_COR) @ 00,00 clear to maxrow (),maxcol () @ 00,00 say 'Acesso negado ...'

Onde está:microvolution escreveu:qual passo seguir para entender o porquê da MsgYesNo... não estarem funcionando corretamente?
Código: Selecionar todos
...
MsgYesNo (TEXTO,PROGRAMA)
return // (CONTROLE)Código: Selecionar todos
...
CONTROLE:=MsgYesNo (TEXTO,PROGRAMA)
return (CONTROLE)

Código: Selecionar todos
do while .t.
...
IF MensagemGui ("Deseja realmente sair?", 1) == 1 // if CONFIRMA ('Confirma a saída do sistema')
setcolor (SALVA_COR)
@ 00,00 clear to maxrow (),maxcol ()
@ 00,00 say 'MVinfo Sistemas & Automa‡Æo ...'
@ 01,00 say 'Obrigado pelo acesso. Volte Sempre !'
inkey(3)
exit
else
loop
endif
endif
...
enddo
Código: Selecionar todos
do while .t.
...
IF MensagemGui ("Deseja realmente sair?", 1) == 1
EXIT
ENDIF
...
enddo
setcolor (SALVA_COR)
Cls
@ 00,00 say 'MVinfo Sistemas & Automa‡Æo ...'
@ 01,00 say 'Obrigado pelo acesso. Volte Sempre !'
inkey(3)

Código: Selecionar todos
IF MsgYesNo( "Deseja sair?" )
EXIT
ENDIF

A realidade que vivo é a mesma de aproximadamente 50% dos brasileiros que ganham bem menos do salário mínimo (SM) do país (atualmente).JoséQuintas escreveu:Um exemplo:
Engraçado, enquanto eu aqui lamentava e digitava essa carta para o SONHAR MAIS UM SONHO, ou porta da DESESPERANÇA, etc... rsrsrsrs... tive a seguinte ideia de substituição das linhas:asimoes escreveu:Microvolution
Vamos lá, no seu programa imagem abaixo:
Veja que você faz um loop (seta) tem uma variável teclas que é do tipo vetor, dentro deste "do while .t." se você faz o loop é feito um aadd(teclas..)
Pergunto, se antes deste loop você não teria que inicializar este vetor com: teclas:={} ou depois da variável inicio
Código: Selecionar todos
TECLAS :={}
loopCódigo: Selecionar todos
clear typeahead
keyboard chr (K_ENTER)
inkey ()
Não precisa ambiente gráfico pra poder usar mouse.só imprime em SET PRINTER TO (LPTx);
hoje tudo é visual, touch screen, e o meu é modo CONSOLE;
Código: Selecionar todos
PROCEDURE Main
CLS
@ 2, 0 SAY "teste"
Inkey(0)
RETURN

.JoséQuintas escreveu:Isso usando gtwvg: hbmk2 test gtwvg.hbc

Código: Selecionar todos
hbmk2 test.prg test2.prg test3.prg test4.prg -m gtwvg.hbc
Código: Selecionar todos
-----------test.hbp
test.prg
test2.prg
test3.prg
test4.prg
-m
gtwvg.hbc
hbmk2 test.hbp

Código: Selecionar todos
C:\MVinfo\hb32\migrar\SiCCA\SiCCA35\sci10000>hbmk2 sicca35gt.hbp sicca35gt
hbmk2: Gerando sub-projeto (passo 2): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 3): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 4): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 5): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 6): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 7): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 8): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 9): SICCA35gt.hbp
hbmk2: Gerando sub-projeto (passo 10): SICCA35gt.hbp
hbmk2[SICCA35gt]: Erro: Não é possível criar projetos aninhados em um nível
mais profundo que 10Código: Selecionar todos
pci10000.prg
dci10000.prg
dci10001.prg
dci10002.prg
enviarerro.prg
ext.prg
impresso.prg
pci10001.prg
pci10002.prg
pci10003.prg
pci10004.prg
pci10005.prg
pci10006.prg
pci10007.prg
pci10008.prg
pci10009.prg
pci10012.prg
pci10013.prg
pci10014.prg
pci10015.prg
pci10016.prg
pci10017.prg
pci10018.prg
pci10019.prg
pci10020.prg
pci10021.prg
pci10022.prg
pci10024.prg
pci10025.prg
pci10026.prg
pci10027.prg
pci10028.prg
pci10031.prg
pci10032.prg
pci10033.prg
pci10034.prg
pci10035.prg
pci10038.prg
pci10039.prg
pci10040.prg
pci10041.prg
pci10042.prg
pci10043.prg
pci10044.prg
pci10045.prg
pci10046.prg
pci10047.prg
pci10100.prg
pci10102.prg
pci10110.prg
pci10115.prg
pci10116.prg
pci10120.prg
pci10121.prg
pci10122.prg
pci10123.prg
pci10124.prg
pci10125.prg
pci10126.prg
pci10127.prg
pci10130.prg
pci10131.prg
pci10132.prg
pci10133.prg
pci10135.prg
pci10136.prg
pci10140.prg
pci10151.prg
pci10152.prg
pci10200.prg
pci10202.prg
pci10203.prg
pci10204.prg
pci10210.prg
pci10211.prg
pci10212.prg
pci10213.prg
pci10215.prg
pci10216.prg
pci10217.prg
pci10220.prg
pci10221.prg
pci10222.prg
pci10225.prg
pci10226.prg
pci10227.prg
pci10228.prg
pci10229.prg
pci10230.prg
pci10231.prg
pci10240.prg
pci10250.prg
pci10251.prg
pci10252.prg
pci10254.prg
pci10255.prg
pci10256.prg
pci10260.prg
pci10270.prg
pci10271.prg
pci10272.prg
pci10273.prg
pci10995.prg
pci10996.prg
pci10997.prg
pci10998.prg
pci10999.prg
pcterror.prg
pimpr105.prg
pimpr110.prg
pimpr115.prg
pimpr120.prg
pimpr121.prg
pimpr125.prg
pimpr130.prg
rci10000.prg
rimpr000.prg
rotinas5.prg
-m
gtwvg.hbc
hbmk2 SICCA35gt.hbp