Ir para conteúdo
Fórum Script Brasil

Jonathan Queiroz

Membros
  • Total de itens

    3.718
  • Registro em

  • Última visita

Tudo que Jonathan Queiroz postou

  1. Não li o tópico inteiro, mas se o textarea está dentro da div ao invés de aumentar o tamanho da div e fazer o textarea acompanhar, não seria mais fácil aumentar somente o tamanho do textarea? Dessa forma a div vai se expandir automaticamente, criando o mesmo efeito.
  2. Sim, entendi. Não conheço nenhum método específico para isso, mas o que geralmente faço é dar um return false ao invés do event.preventDefault. Dessa forma, a função retorna imediatamente e o fato de ter retornado false impede que o evento tenha efeito. Só não sei se existe algum problema de compatibilidade fazendo assim (até hoje nunca tive).
  3. Pelo que entendi, o event.preventDefault não controla o código Javascript, e sim a reação do navegador. Por exemplo, se você chamar esse método na função onsubmit de um formulário ela continuará a ser executada até o final, mas o navegador não enviará o formulário. Sendo assim, você teria que escrever também o return para impedir que a função continue. Exemplo: element.onsubmit=function(event) { if(!validouComSucesso()) { event.preventDefault() //impede que o formulário seja enviado, mas continua a função } alert("Você clicou no botão \"enviar\", mas não sei se o formulário será enviado ou não...") //o Javascript sempre executa essa instrução, mesmo com o "preventDefault" acima }
  4. Na verdade acho que nesse caso específico a limpeza de disco nem funcionaria, já que o arquivo foi criado como qualquer outro, a única diferença é que foi preenchido sem nenhuma informação útil (provavelmente com zeros).
  5. O event.stopPropagation impede que o evento se propague para o elemento-pai do objeto em que ocorreu. Exemplificando: <html> <head> <title>Test</title> <script type="text/javascript"> onload = function () { var principal = document.getElementById("principal") var secundario = document.getElementById("secundario") principal.onclick = function (event) { alert("Clicou na div principal") } secundario.onclick = function (event) { alert("Clicou na div secundária") } } </script> </head> <body> <form action=""> <div id="principal" style="background-color:#00f;width:200;height:200"> <div id="secundario" style="position:relative;background-color:#f00;left:50;top:50;width:100;height:100"> </div> </div> </form> </body> </html> Ao clicar na div secundária (em vermelho), serão mostradas duas mensagens: Clicou na div principal e Clicou na div secundária. Isso ocorre porque o evento se propaga para o elemento-pai. Já se alterar o código para: secundario.onclick = function (event) { alert("Clicou na div secundária") event.stopPropagation() } Apenas a mensagem Clicou na div secundária será mostrada, já que o evento não se propaga para a div principal.
  6. Testei aqui no Firefox 3.6.7 e funcionou perfeitamente com esse código: <select onchange="document.location.href = this.options[this.selectedIndex].value;"> <option value="">Selecione um site</option> <option value="http://www.google.com.br">Google</option> <option value="https://www.scriptbrasil.com.br/forum">ScriptBrasil</option> </select> Obs.: Esse código que você postou não está completo. O correto seria adicionar uma ' (aspas simples) antes e depois da string. echo '<select onchange="document.location.href = this.options[this.selectedIndex].value;">' . $sites . '</select>' Mas imagino que no seu arquivo esteja assim. Se possível poste o link em funcionamento.
  7. Pode parecer mentira, mas acabou de acontecer quase a mesma coisa aqui. Estava utilizando o programa Azureus Vuze para baixar um torrent com vários arquivos. Ele automaticamente cria os arquivos (ocupando espaço, provavelmente preenchidos com zeros) em disco e vai gravando neles à medida que vai baixando. Como minha partição C:\ não tinha espaço suficiente para o download, o programa exibiu uma mensagem de erro e parou a gravação, mas vários arquivos já tinham sido criados (fiquei com menos de 100mb livres no HD, já que eles não foram removidos). Para resolver o problema, apaguei os arquivos manualmente. Fui em Ferramentas --> Opções --> Arquivos e abri a pasta da opção Diretório padrão (no meu caso, C:\Users\Jonathan\Documents\Azureus Downloads) pelo Windows Explorer. Depois foi só remover os arquivos indesejados (no meu caso, ficaram todos numa mesma pasta). Isso também ocorre no Vuze ao clicar no arquivo com o botão direito e utilizar a opção Remover. O correto é Remover e --> Apagar dados. É possível que tenha acontecido algo parecido com você no BitTorrent.
  8. O Matheus postou o código pronto ali em cima. Quanto à função Round, ela recebe dois parâmetros: um número de ponto flutuante e a quantidade de casas decimais. Exemplo: Round(3.14159265358979,4) '3.1416 Round(9.34986,1) '9.3 Round(5.4) '5 (se o parâmetro for omitido, faz a aproximação sem casas decimais) É só adaptar para o seu código.
  9. Você lembrou-se de incluir o código que foi postado?
  10. Bem-vindo ao fórum! Qualquer coisa é só postar.
  11. Movendo: C, C++ --> Outros assuntos.
  12. Você precisa fazer com que a função receba um parâmetro com o nome do arquivo void apaga_arquivo(char* filename) { ... if(remove(filename)!=0) { ... } else { ... } } Declarei a função como void porque ela não precisa retornar nenhum valor. Isso deve ser feito sempre que uma função não retornar nada. Para isso funcionar a variável filename_yesterday terá que ser declarada como global, o que não é a melhor opção. Uma opção é calcular novamente a data de hoje e diminuir um dia ou passar um parâmetro com a data atual (já calculada) e a partir dela calcular o dia anterior. void apaga_arquivo_anterior(time_t rawtime_today) { time_t rawtime_yesterday=rawtime_today-(60*60*24); struct tm *timeinfo_yesterday; timeinfo_yesterday = localtime(&rawtime_yesterday); char filename_yesterday[128]; sprintf(filename_yesterday, "BDPROD.0.DB2.NODE0000.CATN0000.%02d.%02d.%d.001", timeinfo_yesterday->tm_mday, timeinfo_yesterday->tm_mon+1, timeinfo_yesterday->tm_year+1900); printf("Excluir arquivo anterior:> %s\n", filename_yesterday); apaga_arquivo(filename_yesterday); } Isso não funciona porque você ainda está diminuindo um dia manualmente, ao invés de utilizar o código que havia postado acima. Segue o código completo: #include <stdio.h> #include <time.h> void apaga_arquivo(char* filename) { if(remove(filename)!=0) { printf("\nOcorreu um erro ao excluir o arquivo!!\n"); //em situações normais, provavelmente o arquivo não existe } else { printf("\nArquivo removido com sucesso!!\n"); } } void apaga_arquivo_anterior(time_t rawtime_today) { time_t rawtime_yesterday=rawtime_today-(60*60*24); struct tm *timeinfo_yesterday; timeinfo_yesterday = localtime(&rawtime_yesterday); char filename_yesterday[128]; sprintf(filename_yesterday, "BDPROD.0.DB2.NODE0000.CATN0000.%02d.%02d.%d.001", timeinfo_yesterday->tm_mday, timeinfo_yesterday->tm_mon+1, timeinfo_yesterday->tm_year+1900); printf("Excluir arquivo anterior:> %s\n", filename_yesterday); //apaga_arquivo(filename_yesterday); } int main () { time_t rawtime; struct tm *timeinfo; char filename[128]; time (&rawtime); timeinfo = localtime (&rawtime); sprintf(filename, "dados.%02d.%02d.%d.bin", timeinfo->tm_mday, timeinfo->tm_mon+1, timeinfo->tm_year + 1900); apaga_arquivo_anterior(rawtime); return 0; }
  13. Também participo da Unidev. Infelizmente o SB não tem quase nenhum post relacionados a jogos (tem cerca de 2 páginas de tópicos com a palavra OpenGL, mas apenas dois tópicos com códigos). No entanto, se mais pessoas se interessarem pelo assunto, poderia ser criado.
  14. Como assim tópicos sobre APIs gráficas? Refere-se realmente a tópicos (se for isso, embora não exista uma área específica, pode-se postar dúvidas ou dicas sobre esses assuntos) ou fóruns para tratar especificamente disso?
  15. Bem-vindo ao fórum! Qualquer coisa é só postar.
  16. Esse código é C#.NET (outra linguagem), não C++. Provavelmente você instalou o Microsoft Visual C#. Quanto a esse erro, é porque a variável rawtime foi declarada em outro função e está fora do escopo da função apagar_arquivo_anterior. Uma opção é criar uma função apagar_arquivo e apenas passar como parâmetro o nome do arquivo. Basta você calcular a data atual e, a partir dela, a data do dia anterior e o nome do arquivo. Algo assim: //Variáveis char filename_anterior[128], filename_atual[128]; //Data atual time_t rawtime; struct tm *timeinfo; time (&rawtime); timeinfo = localtime(&rawtime); //Arquivo com a data atual sprintf(filename, "BDPROD.0.DB2.NODE0000.CATN0000.%02d.%02d.%d.001", timeinfo->tm_mday, timeinfo->tm_mon+1, timeinfo->tm_year+1900); //Data de ontem time_t rawtime_yesterday; struct tm *timeinfo_yesterday; time (&rawtime_yesterday); timeinfo = localtime(&rawtime_yesterday); //Arquivo com a data de ontem sprintf(filename_anterior, "BDPROD.0.DB2.NODE0000.CATN0000.%02d.%02d.%d.001", timeinfo_yesterday->tm_mday, timeinfo_yesterday->tm_mon+1, timeinfo_yesterday->tm_year+1900); //Remove o arquivo apagar_arquivo(filename_anterior);
  17. Testei aqui no Visual C++ e funcionou. Talvez seja necessário algum cast. Se possível poste a descrição do erro. Edit: Você editou o código enquanto postava. Provavelmente o erro que está ocorrendo é porque a variável rawtime (que representa a data atual) está fora do escopo.
  18. Jonathan Queiroz

    Problemão....

    Movendo: Demais Bancos --> C, C++. Isso provavelmente é algum ponteiro apontando para local inválido. Ao tentar escrever nesse local, ocorre o erro.
  19. Tente algo assim: time_t rawtime_yesterday=rawtime-(60 * 60 * 24); char filename_yesterday[128]; struct tm* timeinfo_yesterday = localtime(&rawtime_yesterday); sprintf(filename_yesterday, "dados.%02d.%02d.%d.bin", timeinfo_yesterday->tm_mday, timeinfo_yesterday->tm_mon+1, timeinfo_yesterday->tm_year + 1900);
  20. De nada, qualquer coisa posta aí. No caso de utilizar return sem nada depois é como se a função retornasse valor indefinido (o mesmo acontece ao tentar obter o valor de uma função que chegou ao fim normalmente). function f1() { return; } function f2() { } alert(f1()) //undefined alert(f2()) //undefined Obs.: O tópico foi marcado como Resolvido.
  21. Na verdade pelo que sei o correto em Javascript é comparar com true (booleano), e não com "checked" (string). Tanto é que, mesmo se você escrever explicitamente no HTML checked="checked" o element.checked no Javascript valerá true.
  22. O que você chama de "o resto do script"? Se estiver dentro de uma função e quiser parar sua execução, pode utilizar o return.
  23. Jonathan Queiroz

    Rzor

    Bem-vindo ao fórum! Precisando de algo é só postar.
  24. Movendo: Ajax, JavaScript, XML, DOM --> Flash & ActionScript.
×
×
  • Criar Novo...