Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes.

Java ::: Pacote java.awt.event ::: KeyEvent

Java Swing - Como detectar as teclas Insert ou Delete usando o método getKeyCode() da classe KeyEvent do Java

Quantidade de visualizações: 3716 vezes
Em algumas situações nós precisamos detectar o pressionamento das teclas Insert ou Delete. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_INSERT (Ins) ou KeyEvent.VK_DELETE (Del).

Veja um trecho de código no qual testamos se alguma destas duas teclas foi pressionada:

package estudos;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Janela extends JFrame implements KeyListener{
  public Janela(){
    super("Eventos do Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
    
    // vamos adicionar o objeto listener 
    addKeyListener(this);

    setSize(350, 250);
    setVisible(true);
  }
    
  @Override
  public void keyPressed(KeyEvent e){
    // a tecla Insert foi pressionada?
    if(e.getKeyCode() == KeyEvent.VK_INSERT){
      JOptionPane.showMessageDialog(null, "A tecla Insert foi pressionada");
    }
    // a tecla Enter Delete pressionada?
    else if(e.getKeyCode() == KeyEvent.VK_DELETE){
      JOptionPane.showMessageDialog(null, "A tecla Delete foi pressionada");
    }
    else{
      JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada");  
    }
  }
    
  @Override
  public void keyReleased(KeyEvent e){
    // sem implementação
  }

  @Override
  public void keyTyped(KeyEvent e){
    // sem implementação
  }   
  
  public static void main(String args[]){
    Janela j = new Janela();
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

É importante observar que as teclas Insert e Delete podem ser detectadas somente nos eventos keyPressed e keyReleased.


C++ ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um diretório em C++ usando a função rmdir()

Quantidade de visualizações: 9053 vezes
Em algumas situações nossos códigos C++ precisam excluir diretórios. Isso pode ser feito com o auxílio da função _rmdir() ou rmdir(), disponível no header direct.h (trazido da linguagem C). Veja a assinatura desta função:

int _rmdir(const char *pathname);
Se o diretório for excluído com sucesso a função retornará o valor 0. O retorno será -1 se um erro ocorrer. Neste caso a variável global errno será definido como um dos seguintes valores:

a) ENOTEMPTY - Directory not empty - O diretório não está vazio e portanto não pode ser excluído;

b) ENOENT - No such file or directory - O caminho do diretório é inválido;

c) EACCESS - Acesso negado - Algum outro programa está usando este diretório e mantém controle sobre o mesmo.

Veja um trecho de código C++ no qual excluímos um diretório:

#include <iostream>
#include <direct.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos excluir este diretório
  char diretorio[] = "C:\\Dev-Cpp\\estudos";

  // vamos testar se houve erro na exclusão do diretório
  if(rmdir(diretorio) == -1){
    cout << "Erro: " << strerror(errno) << endl;
  }
  else{
    cout << "Diretório excluído com sucesso" << endl;
  }

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

É possível usar a versão Unicode de _rmdir(), ou rmdir(). O método _wrmdir(), também presente em direct.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:

#include <iostream>
#include <direct.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos excluir este diretório
  wchar_t diretorio[] = L"C:\\Dev-Cpp\\estudos";

  // vamos testar se houve erro na exclusão do diretório
  if(_wrmdir(diretorio) == -1){
    cout << "Erro: " << strerror(errno) << endl;
  }
  else{
    cout << "Diretório excluído com sucesso" << endl;
  }

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



Delphi ::: VCL - Visual Component Library ::: TComboBox

Como retornar o texto do item selecionado em um ComboBox do Delphi

Quantidade de visualizações: 29856 vezes
Uma das tarefas mais frequentes que precisamos realizar quando estamos usando o controle TComboBox em nossas aplicações Delphi é obter o texto do item selecionado. Isso pode ser feito fornecendo-se o índice do item selecionado (itemIndex) como subscrito para a propriedade Items (do tipo TStrings) do ComboBox. Veja o exemplo abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
  item: string;
begin
  // vamos obter o valor do item selecionado no ComboBox
  item := ComboBox1.Items[ComboBox1.ItemIndex];

  // mostra o resultado
  ShowMessage('O item selecionado é: ' + item);
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cpp

Quantidade de visualizações: 28678 vezes
Esta dica o guiará passo-a-passo na criação de uma classe C++, incluindo os arquivos .h e .cpp. Para isso vamos usar o Dev-C++ (acreditamos que o procedimento é parecido com outros compiladores).

Vamos começar com o arquivo de definição. Com um projeto já iniciado no Dev-C++, vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes.

Salve o arquivo com o nome de "pessoa.h" e inclua nele o seguinte código:

/*
  Código de definição: pessoa.h
*/

#ifndef PESSOA_H
#define PESSOA_H

#include <string>
using std::string;

class Pessoa{
  public:
    void setNome(string nome);
    void setIdade(int idade);
    string getNome();
    int getIdade();
  private:
    string nome;
    int idade;
};

#endif

Salve este código como pessoa.h no diretório de sua aplicação C++. Este é o arquivo de definição da classe. É nele que declaramos os membros públicos e privados, incluindo as assinaturas dos métodos da classe. Passemos agora ao arquivo de implementação. Novamente vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o novo arquivo como "pessoa.cpp" e inclua nele o seguinte conteúdo:

/*
  Código de implementação: pessoa.cpp
*/

#include "pessoa.h"

void Pessoa::setNome(string nome){
  this->nome = nome;
}

void Pessoa::setIdade(int idade){
  this->idade = idade;
}

string Pessoa::getNome(){
  return this->nome;
}

int Pessoa::getIdade(){
  return this->idade;
}

Salve este código como pessoa.cpp no diretório de sua aplicação C++. Este é o arquivo de implementação dos métodos da classe Pessoa. Veja o uso da palavra-chave this quando queremos referenciar o objeto atual da classe e, é claro, evitar ambiguidade entre o nome das variáveis da classe e os nomes dos parâmetros dos métodos.

Hora de testar. Crie o arquivo principal da aplicação (aquele que contém o método main()):

#include <iostream>
#include "pessoa.h"

using namespace std;

int main(int argc, char *argv[])
{
  // declara um objeto da classe Pessoa
  Pessoa p;

  // informa o nome e idade da pessoa
  p.setNome("Osmar J. Silva");
  p.setIdade(27);

  // obtém o nome e idade da pessoa
  cout << "Nome: " << p.getNome() << endl;
  cout << "Idade: " << p.getIdade() << endl;

  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Funcionou tudo como planejado? Se funcionou, parabéns! Já fizemos um bom progresso na criação e uso de classes em C++.


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 27 usuários muito felizes estudando em nosso site.