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.

Delphi ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como capturar um screenshot da área de trabalho e salvá-lo como um Bitmap usando Delphi

Quantidade de visualizações: 14150 vezes
Em algumas situações precisamos capturar um screenshot da área de trabalho (Windows Desktop) e salvá-lo como um Bitmap. Esta dica mostra como isso pode ser feito. Note que aqui estamos salvando o bitmap gerado no mesmo diretório do executável. Caso queira salvar o resultado em outra pasta ou diretório, consulte minhas dicas sobre a manipulação de arquivos e diretórios usando Delphi.

Veja o código (coloquei no evento OnClick de um botão:

procedure TForm2.Button1Click(Sender: TObject);
var
  DCDesk: HDC;
  bmp: TBitmap;
begin
  // vamos criar o Bitmap
  bmp := TBitmap.Create;

  // vamos definir o tamanho do bitmap
  bmp.Height := Screen.Height;
  bmp.Width := Screen.Width;

  // aqui nós obtemos um handle para o contexto de dispositivo
  // de exibição do Desktop
  DCDesk := GetWindowDC(GetDesktopWindow);

  // vamos copiar a imagem do desktop para o bitmap criado
  // anteriormente
  BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
    DCDesk, 0, 0, SRCCOPY);

  // salvamos o bitmap
  bmp.SaveToFile('screenshot.bmp');

  // liberamos o handle do desktop
  ReleaseDC(GetDesktopWindow, DCDesk);

  // e finalmente liberamos o bitmap
  bmp.Free;

  ShowMessage('Screenshot criado com sucesso.');
end;

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


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Apostila Delphi para iniciantes - Como acessar os caracteres de uma string individualmente

Quantidade de visualizações: 18404 vezes
Em algumas situações pode ser necessário acessar os caracteres de uma palavra, frase ou texto individualmente. Em Delphi isso pode ser feito usando-se a indexação de matrizes. Tenha em mente, porém, que o índice em Delphi começa em 1 e não 0, como na maioria das linguagens.

Veja um trecho de código no qual acessamos o primeiro caractere de uma string:

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
  letra: Char;
begin
  nome := 'Osmar J. Silva';

  // vamos obter a primeira letra
  letra := nome[1];

  // vamos exibir o resultado
  ShowMessage('A primeira letra é: ' + letra);
end;

Veja outro exemplo, no qual usamos um laço for para visitar cada um dos caracteres e exibí-lo:

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
  letra: Char;
  i: integer;
begin
  nome := 'Osmar';

  for i := 1 to Length(nome) do
    begin
      letra := nome[i];
      ShowMessage('O ' + IntToStr(i) + 'º caractere é: '
        + letra);
    end;
end;

Assim como acessamos os caracteres individuais de uma string para leitura, podemos fazê-lo também para alterações. Veja um trecho de código no qual trocamos o terceiro caractere de uma string:

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
begin
  nome := 'Osmar';

  // vamos alterar o terceiro caractere
  nome[3] := 'K';
  
  ShowMessage(nome);
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


C ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Apostila C para iniciantes - Como escrever suas próprias funções em C

Quantidade de visualizações: 11401 vezes
As funções na linguagem C têm por objetivo dividir nossos programas em partes menores. Em vez de colocar todo o nosso código na função main() nós podemos criar nossas próprias funções e, desta forma, agrupar funcionalidades relacionadas.

Suponha que estejamos desenvolvendo um editor de texto em C. Poderíamos então ter funções que abrem o arquivo a ser exibido no editor, que salvam o arquivo, que verificam se houve alterações no texto, etc. E a maior vantagem disso é que conseguimos promover o reaproveitamento de código, uma vez que, diferente da função main(), as funções disponíveis na linguagem e aquelas que nós mesmos criamos podem ser chamadas mais de uma vez durante a execução do programa.

Então, já sabemos que uma função não é nada mais que um bloco de códigos situado fora da função main() e que pode ser chamado a partir da função main() ou de outras funções no programa. Sendo assim, vamos escrever nossa primeira função em C. Veja o código a seguir:

#include <stdio.h>
#include <stdlib.h>

// uma função que escreve uma frase
// na tela
void escrever(void){
  printf("Sou uma funcao");
}

int main(int argc, char *argv[]){
  // efetua uma chamada à função escrever
  escrever();

  puts("\n\n");
  system("PAUSE");
  return 0;
}

Neste programa nós temos uma função chamada escrever() que apenas escreve uma frase na tela. Note o uso de void para indicar que a função não retorna nada e não aceita nenhum argumento. Alguns compiladores (tais como Dev-C++) não exigem que coloquemos void para indicar a ausência de parâmetros na função. Assim, a função acima pode ser reescrita da seguinte forma:

void escrever(){
  printf("Sou uma funcao");
}

Importante notar que, dentro do corpo de uma função, podemos inserir a quantidade de código que desejarmos. Isso é importante, uma vez que a tarefa realizada por uma função pode não ser tão simples quanto o exemplo que usamos até este ponto. Veja um programa que contém uma função personalizada mais elaborada. Note as duas chamadas a esta função a partir da função main():

#include <stdio.h>
#include <stdlib.h>

// uma função que escreve uma frase
// na tela
void escrever(){
  char nome[] = "Osmar J. Silva";
  printf("Ola, meu nome e %s\n", nome);
}

int main(int argc, char *argv[]){
  printf("Sou main. Vou chamar a funcao escrever()\n");

  // efetua uma chamada à função escrever
  escrever();

  // efetua outra chamada à função escrever
  escrever();

  printf("Acabei de efetuar chamadas a funcao escrever()");

  puts("\n\n");
  system("PAUSE");
  return 0;
}

Funções podem receber argumentos e retornar valores. E quando isso acontece nós estamos realmente escrevendo funções úteis. Quando perceber que já aprendeu a escrever funções simples como as demonstradas nesta dica, volte sua atenção para as funções mais elaboradas que tratamos em outras dicas relacionadas.


Java ::: Pacote java.lang ::: String

Como verificar se uma string Java contém uma determinada sequencia de caracteres (ou substring) usando o método contains()

Quantidade de visualizações: 12196 vezes
Em algumas situações precisamos verificar se uma sequencia de caracteres ou substring está contida em uma string. Para isso podemos usar o método contains() da classe String. Veja sua assinatura:

public boolean contains(CharSequence s)

Note que o método recebe um argumento do tipo CharSequence, que é uma interface implementada pelas classes CharBuffer, Segment, String, StringBuffer e StringBuilder. O método retorna true se a sequencia de caracteres for encontrada e false em caso contrário.

Veja um trecho de código no qual usamos este método para verificar se uma palavra está contida em uma frase:

public class Main {
  public static void main(String[] args) {
    // vamos declarar uma string
    String frase = "Gosto muito de Java e PHP";
    
    // vamos verificar se a string contém a palavra "Java"
    if(frase.contains("Java")){
      System.out.println("A frase contém a substring informada");
    }
    else{
      System.out.println("A frase não contém a substring informada");	
    }
  }
}

Este método pode atirar uma exceção do tipo NullPointerException se o argumento fornecido for null.


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 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 Apenas R$ 19,90


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