Ir para conteúdo
Fórum Script Brasil

Decio

Membros
  • Total de itens

    797
  • Registro em

  • Última visita

Tudo que Decio postou

  1. Decio

    Codigo

    Resumindo, acho que é isto: void CJoyScan::joystickScan(int v[4], char b[4]) { // v = Resistorvalues: int Values between 0-700 // b = Buttonswitchvalues: int Values between 0-1 --> char type used to save memory int i, j; int mask = 15; // Aqui você esta escrevendo na porta "JPORT" o valor 0. // JPORT deve estar definida em algum ponto do seu programa e zero "desliga" tos os bit's desta porta // Se não me engano a porta do Joystick é 0x201 _outp(JPORT, 0); for (i=1; mask && i<CMAX; i++) { //Aqui esta fazendo a leitura em "JPORT" e J esta fazendo um XOR com o que foi recebido. j = _inp(JPORT) ^ mask; //Verifica se bit 1 esta ligado (0000 0001) e caso positivo, deixa mask = xor 1 if (j & 1) { v[0] = i; mask ^= 1; } //Verifica se bit 2 esta ligado (0000 0010)e deixa mask = xor 2 if (j & 2) { v[1] = i; mask ^= 2; } //Verifica se bit 4 esta ligado (0000 0100)e deixa mask = xor 4 if (j & 4) { v[2] = i; mask ^= 4; } //Verifica se bit 8 esta ligado (0000 1000)e deixa mask = xor 8 if (j & 8) { v[3] = i; mask ^= 8; } } //Aqui faz a leitura em "JPORT" j = _inp(JPORT); //Muda valor De b[0] se bit 10 estiver ligado (0001 0000) b[0] = !(j & 0x10); //Muda valor De b[1] se bit 20 estiver ligado (0010 0000) b[1] = !(j & 0x20); //Muda valor De b[0] se bit 40 estiver ligado (0100 0000) b[2] = !(j & 0x40); //Muda valor De b[3] se bit 80 estiver ligado (1000 0000) b[3] = !(j & 0x80); } Caso eu esteja errado, por favor me corrijam.
  2. Na verdade não se costuma declarar váriaveis no main(), a não ser que você queira passar parametros para seu programa a partir da linha de comando.Mesmo assim deve-se ter um critério, que pode ser + ou - assim: void main(int argc,char **argv) Onde int argc recebe a quantidade de parametros passados, sendo que o próprio nome do executável é o primeiro parametro, e char argv é um array de ponteiro onde esta armazenado todos os parâmetros passados para a função. Declarar variaveis no main como você esta sugerindo não tem sentido. Se fosse o caso, declarar as váriaveis como parametro de uma função ou dentro da função, desde que do mesmo tipo, vão ocupar o mesmo tamanho na memória.Ou seja um "int" tem o tamanho de um "int" em qualquer lugar do seu programa. Passagem por valor ou referencia em uma outra função criada por vc, dai sim são completamente diferentes
  3. Da uma olhada neste tópico e veja se ajuda em algo: http://scriptbrasil.com.br/forum/index.php...topic=37702&hl=
  4. Decio

    Tempo

    Você pode usar a biblioteca time.h: #include "time.h" time_t Hini,Hfim; int TEMPO (int segundo){ // Passe o tempo em segundos { time(&Hini); do{ time(&Hfim); printf("Tempo de espera: %1.f segundos\n",difftime(Hfim,Hini)); }while ((difftime(Hfim,Hini)< segundo)); } return 0; }
  5. Decio

    Capiturar Click

    Legal William. Muito boa a dica.
  6. Da uma olhada no help na função ftime do timeb.h. Com esta biblioteca você pode trabalhar em Milesegundos.
  7. Decio

    Windows Ce

    Fiz uma pesquisa nestes dois endereços: http://msdn.microsoft.com/library/default....ded05202003.asp e http://www.hpcfactor.com/support/windowsce/ Acredito que na verdade o CE 4.2 é mais recente que o Pocket 2002 e não mais antigo como falei. Tente fazer o download do arquivo Microsoft Pocket PC 2003 SDK.msi no site da MS. Eu nunca usei, mas esta deve ser a plataforma correta para o seu caso.
  8. Decio

    Capiturar Click

    Apenas por curiosidade, como se coloca um Sub Menu no bloco de notas?? Quanto ao seu problema, a dica do Graymalkin é muito boa. Não vejo outra alternativa a não se o uso de API's.
  9. Decio

    Windows Ce

    A versão 3.0 é para o Pocket PC2002, mais recente que o CE. Não sei se funciona. . Na hora de gerar o instalador, também é pedido o tipo de processador. Veja se você selecionou a versão correta, ou tenta ver no site da MS se tem alguma versão do VBe compativel com o seu SO.
  10. Decio

    Capiturar Click

    Não é tão simples assim a comunicação entre duas aplicações, principalmente se uma delas não for você quem fez.Eu sugiro o código abaixo, que é uma rotina que fica monitorando o ClipBoard. Se aparecer algum dados você faz alguma coisa. O problema é que você não vai saber de onde veio os dados. On Error Resume Next Clipboard.Clear Do strClip = Clipboard.GetText DoEvents If strClip <> "" Then Exit Do Loop While (strClip = "") MsgBox strClip
  11. Decio

    Embedded Visual Basic

    Para gravar um arquivo no Visual Basic Embedded é + ou - assim: File.Open "Arquivo.txt", fsAccessWrite File.LinePrint "Texto a ser gravado" File.Close Não sei se é preciso criar previamente o arquivo, mas na dúvida crie o arquivo antes de testar o código É preciso adicionar o componente MS CS FILE SYSTEM CONTROL XX Vá em "Projects- Components" e selecione o componente acima.
  12. Decio

    Programando A Porta Paralela

    Você não consegue usar estas funções simplesmente porque não é possível usar funções de acesso direto ao hardware em Windows (exceto Win 9x).Existem dll´s que facilitam a programação da paralela em Windows. Uma boa fonte de referência é: http://www.rogercom.com/
  13. Faz como o Graymalkin sugeriu, coloque um msgbox em cada linha ou coloque um breakpoint para debugar passo a passo. Retire também qualquer "on error resume next" que possa existir.
  14. por acaso, o "erro" é "Subscript out of range" ?
  15. Basta salvar as váriaveis na ordem que você quiser. A lógica seria +- assim: Print #1, Var001 & ";" & Var002 & ";" Var003 ' Etc... No caso a ordem é você quem escolhe.
  16. With MSFlexGrid1 .ClearFields .ReBind End With você esta confundindo os componentes. Quem tem os metodos "ClearFields" e "ReBind" é o DataGrid , e não o MSFlexGrid. Este deve ser o erro.
  17. Decio

    Picture Box

    É cara, eu não sou muito bom com o objeto Printer (entre muitas outras coisas). Veja se este tutorial te ajuda. http://www.macoratti.net/printer.htm#prn_form O mais fácil é dar um PrintForm, mas não deve resolver o seu problema.
  18. Se não existir uma forma de alinhamento, você pode criar sua própria função usando espaços em branco para alinhar a string.
  19. Eu não utilizo estes componentes, portanto não sou o mais indicado para lhe ajudar. Uma boa fonte de pesquisa é http://www.macoratti.net/ onde vai encontrar alguns tutoriais a respeito.
  20. A chamada feita a função ReleaseCapture da forma como esta sendo chamada, não esta recebendo nenhum valor de retorno. você precisa definir uma variavel para receber o retorno, mas neste caso não é necessário. Segundo a descrição do API-GUIDE, a função ReleaseCaptyre faz isto: Que é alguma coisa assim:(não com estas palavras) Pega as coordenadas de um objeto que foi clicado e restaura na coordenada em que foi arrastado o objeto . Se você não tiver a documentação de uma função fica praticamente impossível adivinhar todos os parametros que ela pode receber.Principalmente no caso da função SendMessages que tem diversas finalidades.Esta documentação deve estar no SDK da Microsoft API serve extamente para desenvolvedores não terem que reinventar a roda.Tente fazer a mesma função de arrastar um objeto sem usar API.De qualquer forma, nunca usei estes eventos, você vai ter que pesquisar um pouco para saber mais a respeito.
  21. Decio

    Auto Numerção

    pois quando eu excluo esse numero nunca mais é usado Então o Campo auto-Numeração do Access vai servir para vc. quando você apaga um registro, não é mais criado outro numero igual ao que foi apagado. Caso você queira criar sua propria rotina de auto numeração, principalmente no seu caso que não quer repetir um mesmo numero, você deve saber qual foi o ultimo numero criado, o que não esta claro no seu código de como você vai fazer isto. Uma sugestão , seria você criar um campo em uma tabela separada apenas para armazenar o ultimo numero.Assim que você criar um novo, incrementa + 1 e salva o novo numero.
  22. Decio

    Auto Numerção

    porque você não cria um campo auto numeração no próprio banco de dados?
  23. Falta fechar o arquivo: Private Sub relat_Click() Open "c:\Bloqueios_Mensais.xls" For Output As #1 Do Until Rs.EOF Print #1, Rs.GetString(, 100, vbTab, vbCrLf, ""); Loop Close #1 MsgBox "Arquivo - Bloqueios Mensais - gerado com sucesso !!" End Sub
  24. É CoolBar ou ToolBar que você esta usando? Se for ToolBar, você precisa usar o ImageList também.
  25. Para colocar figuras diretamente no banco de dados, você precisa dizer qual o tipo do banco de dados que você esta usando. Cada tem sua particularidade Se for em Access, tente fazer uma busca aqui mesmo no fórum, que eu já vi um tópico parecido. Uma forma mais fácil, seria copiar a figura para alguma pasta e guardar no banco de dados apenas o nome e o caminho onde esta a figura.
×
×
  • Criar Novo...