Jump to content
Fivewin Brasil

gilmer

Administrador
  • Posts

    3,036
  • Joined

  • Last visited

  • Days Won

    34

Everything posted by gilmer

  1. Bom Dia, Você precisa aumentar o tempo no my.ini na documentação do mariadb tem informações, procure por wait_timeout.
  2. gilmer

    dashboard

    Bom Dia, Aqui fizemos umas classes novas para dashboard
  3. Bom Dia a todos! Minha modesta opinião, é que não tem mais linguagem soberana como antigamente. É necessário saber analisar onde será usado e qual é a melhor tecnologia a ser aplicado, claro que isto olhando o seguimento que sua empresa de software trabalha, atualmente aqui usamos: - FiveWin; - Mod_Harbour (pouca coisa, integração webservice, mas preparando o back-end da nossa aplicação principal ); - PHP (E seus diversos frameworks); - WinDev para aplicações Android/IOs (já abandonei, altamente produtivo, porem, muito engessado e falta de qualidade final); - Flutter (Qualidade muito melhor que WinDev e multiplataforma também); - Linguagem C para integrações necessárias hoje (é! ela sobrevive! ); - PureBasic ( Para criação de DLLs de forma muito rápida). - Etc.. Infelizmente dependendo do seguimento é necessário abrir espaço para novos conhecimentos. Sempre deve iniciar em uma nova tecnologia desenvolvendo uma aplicação MVP para uma analise melhor. Então meu amigo Valdir! eu com meus 54 anos continuo aprendendo e pesquisando. Inclusive hoje participo de mentorias para aprender a gerir uma empresa de software de forma melhor e vai por mim! sempre temos que algo para aprender também em gestão , então é mais uma questão de perfil de cada pessoa, que tem cede de aprender não para nem com 80 anos, se começou uma vez, consegue mais vezes se for necessário kkkk Abraços
  4. gilmer

    WebView2

    Aplicação web mais próximo da realidade harbour, é o mod_harbour, são estruturas total diferente aplicação web e desktop. O Windev gera mas ele tem um componente encapsulado para web.
  5. Boa Tarde, Este exemplo não tem mais funcionalidade, o whatsapp mudou toda api. Existe a api oficial e outras no mercado.]
  6. Boa Tarde, Estaremos verificando. Obrigado
  7. Bom Dia, Basta usar o controle normal no Pelles e usar o mesmo no redefine SPINNER MIN 00 MAX 24 ; ON UP GetStep( aGet[ 1 ], 1 ) ; ON DOWN GetStep( aGet[ 1 ], - 1 ) ;
  8. Tem a versão DLL, onde pode ser declarado seus recursos pela Dll32 Function ou funções de DLL do [x]harbour
  9. Bom Tarde, Cada ttf de código de barras tem suas instruções de como utilizar, necessário verificar a documentação do fornecedor.
  10. Alexandre, Muito poucas pessoas migraram seu sistema para 64 bits, até por conta das DLLs não poderem ser 32 bits.
  11. Segue meu e-mail gilmer@fivewin.com.br
  12. Bom Dia O Windev Mobile é muito produtivo. E recursos mais avançados tem o flutter
  13. Você utilizou o instalador da flexdocs ? Se não, tente com ele.
  14. Bom Dia, Na pior da hipóteses você pode usar o override no método da classe nativa
  15. Bom Dia Verifique bLClickHeader da TXBrwColumn -> ( nMRow, nMCol, nFlags, Self -- Parâmetros automáticos ) oCol:bLClickHeader := { |nMRow, nMCol, nFlags, oCol| SeuTratamento() }
  16. Bom Dia, Seu get não é tipo data ? por padrão ele não deixa digitar uma data inválida
  17. Boa Tarde, Você usou a versão com instalador? após a instalação tentou reiniciar a máquina ?
  18. Uma solução é o ngrok https://ngrok.com/
  19. Marca, veja se eles tem projeto pronto em postman ou faça funcionar em postman que eu te mostro uma forma de fazer mais fácil.
  20. Feito! se acharem mais alguma coisa é só avisar!
  21. Boa Tarde Se você quer validar o Get, use oGet:lValid(). Caso queira simular envie em sendmessag simulando um enter
  22. Boa Tarde, Você pode mandar com mais casas decimais, acredito que a classe não ira fazer distinção.
  23. Bom Dia, Segue abaixo arrumado #pragma BEGINDUMP #include <Windows.h> #include <hbapi.h> #ifndef DEF_LIBCRC_CHECKSUM_H #define DEF_LIBCRC_CHECKSUM_H #define CRC_POLY_CCITT 0x1021 #define CRC_START_CCITT_FFFF 0xFFFF uint16_t crc_ccitt_ffff( const unsigned char *input_str, size_t num_bytes ); #endif // DEF_LIBCRC_CHECKSUM_H static uint16_t crc_ccitt_generic( const unsigned char *input_str, size_t num_bytes, uint16_t start_value ); static void init_crcccitt_tab( void ); static BOOL crc_tabccitt_init = FALSE; static uint16_t crc_tabccitt[256]; static BOOL crc_tab_init = FALSE; static uint16_t crc_tab[256]; /* * uint16_t crc_ccitt_ffff( const unsigned char *input_str, size_t num_bytes ); * * The function crc_ccitt_ffff() performs a one-pass calculation of the CCITT * CRC for a byte string that has been passed as a parameter. The initial value * 0xffff is used for the CRC. */ uint16_t crc_ccitt_ffff( const unsigned char *input_str, size_t num_bytes ) { return crc_ccitt_generic( input_str, num_bytes, CRC_START_CCITT_FFFF ); } /* crc_ccitt_ffff */ /* * static uint16_t crc_ccitt_generic( const unsigned char *input_str, size_t num_bytes, uint16_t start_value ); * * The function crc_ccitt_generic() is a generic implementation of the CCITT * algorithm for a one-pass calculation of the CRC for a byte string. The * function accepts an initial start value for the crc. */ static uint16_t crc_ccitt_generic( const unsigned char *input_str, size_t num_bytes, uint16_t start_value ) { uint16_t crc; uint16_t tmp; uint16_t short_c; const unsigned char *ptr; size_t a; if ( ! crc_tabccitt_init ) init_crcccitt_tab(); crc = start_value; ptr = input_str; if ( ptr != NULL ) for (a=0; a<num_bytes; a++) { short_c = 0x00ff & (unsigned short) *ptr; tmp = (crc >> 8) ^ short_c; crc = (crc << 8) ^ crc_tabccitt[tmp]; ptr++; } return crc; } /* crc_ccitt_generic */ /* * static void init_crcccitt_tab( void ); * * For optimal performance, the routine to calculate the CRC-CCITT uses a * lookup table with pre-compiled values that can be directly applied in the * XOR action. This table is created at the first call of the function by the * init_crcccitt_tab() routine. */ static void init_crcccitt_tab( void ) { uint16_t i; uint16_t j; uint16_t crc; uint16_t c; for (i=0; i<256; i++) { crc = 0; c = i << 8; for (j=0; j<8; j++) { if ( (crc ^ c) & 0x8000 ) crc = ( crc << 1 ) ^ CRC_POLY_CCITT; else crc = crc << 1; c = c << 1; } crc_tabccitt = crc; } crc_tabccitt_init = TRUE; } // ======================================================================== HB_FUNC( C_EMTCRC_CCITT_FFFF ) // cText --> nTextCRC { hb_retnl( crc_ccitt_ffff( ( unsigned char * ) hb_parc( 1 ), hb_parclen( 1 ) ) ); } #pragma ENDDUMP
×
×
  • Create New...