![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa 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 carregar uma imagem JPG, convertê-la em Bitmap e desenhá-la no formulário usando DelphiQuantidade de visualizações: 19074 vezes |
Em algumas situações nós precisamos carregar uma imagem JPG, convertê-la em Bitmap e desenhá-la em nosso formulário. Nesta dica eu mostro como isso pode ser feito. Vamos começar lendo a imagem JPG a partir do diretório da aplicação:
procedure TForm3.Button1Click(Sender: TObject);
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
// uses Jpeg; // não esqueça
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos criar o JPG
jpg := TJPEGImage.Create;
try
// vamos carregar a imagem JPG
jpg.LoadFromFile('foto.jpg');
// vamos convertê-la para Bitmap
bmp.Assign(jpg);
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form3.Canvas.Draw(0, 0, bmp);
finally
Jpg.Free;
Bmp.Free;
end;
end;
Veja que a técnica consiste em carregar a imagem JPG e convertê-la em Bitmap usando o método Assign() da classe TBitmap. Em seguida só precisamos usar o método Draw() do Canvas do formulário para desenhar a imagem já convertida. Caso você precise carregar a imagem JPG em tempo de execução, basta colocar um TOpenPictureDialog no formulário e alterar o código do evento Click do botão para:
procedure TForm3.Button1Click(Sender: TObject);
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
// uses Jpeg; // não esqueça
if OpenPictureDialog1.Execute then
begin
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos criar o JPG
jpg := TJPEGImage.Create;
try
// vamos carregar a imagem JPG
jpg.LoadFromFile(OpenPictureDialog1.FileName);
// vamos convertê-la para Bitmap
bmp.Assign(jpg);
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form3.Canvas.Draw(0, 0, bmp);
finally
Jpg.Free;
Bmp.Free;
end;
end;
end;
Vamos complicar um pouco mais? Que tal uma função que carrega a imagem JPG, faz a conversão para Bitmap e retorna o Bitmap para o chamador? Veja:
function jpg2bitmap(const imagem: String): TBitmap;
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
// uses Jpeg; // não esqueça
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos criar o JPG
jpg := TJPEGImage.Create;
try
// vamos carregar a imagem JPG
jpg.LoadFromFile(imagem);
// vamos convertê-la para Bitmap
bmp.Assign(jpg);
except
bmp := nil;
end;
// vamos retornar o bitmap resultante
Jpg.Free;
Result := bmp;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
bmp: TBitmap;
begin
// vamos obter o Bitmap a partir da função personalizada
bmp := jpg2bitmap('foto2.jpg');
// a imagem Bitmap foi obtida com sucesso?
if bmp <> nil then
begin
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form3.Canvas.Draw(0, 0, bmp);
bmp.Free;
end
else
ShowMessage('Não foi possível obter o Bitmap');
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C++ ::: Fundamentos da Linguagem ::: Passos Iniciais |
Apostila C++ para iniciantes - Como usar a macro EXIT_SUCCESS em C++Quantidade de visualizações: 9942 vezes |
|
A macro EXIT_SUCCESS, disponível na biblioteca cstdlib da linguagem C++, pode ser usada como argumento para a função exit() para sinalizar que o programa finalizou sua execução sem erros. Os dois trechos de código abaixo são semelhantes: 1) Usando EXIT_SUCCESS para sinalizar que o programa foi finalizado com sucesso:
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
// programa foi finalizado com sucesso
return EXIT_SUCCESS;
}
2) Usando o valor 0 para sinalizar que o programa foi finalizado com sucesso:
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
// programa foi finalizado com sucesso
return 0;
}
|
C ::: Dicas & Truques ::: Matemática e Estatística |
Como usar a função modf() da linguagem C para separar um valor de ponto flutuante em suas partes inteira e fracionáriaQuantidade de visualizações: 10654 vezes |
Em algumas situações precisamos obter as partes inteira e fracionária de um valor de ponto flutuante. Para isso podemos usar a função modf(). Veja sua assinatura:double modf(double x, double * intpart); O parâmetro x é o valor de ponto flutuante cujas partes queremos separar e intpart é uma variável do tipo double que receberá a parte inteira do valor. O retorno da função é o valor fracionário. Vamos ver um exemplo? Veja como podemos quebrar o valor 34,27 em suas partes inteira e fracionária:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
double valor = 34.27;
// vamos separar o valor em suas partes inteira e fracionária
double inteira = 0.0, fracionaria = 0.0;
fracionaria = modf(valor, &inteira);
// vamos exibir o resultado
printf("Parte inteira: %f\n", inteira);
printf("Parte fracionaria: %f\n", fracionaria);
printf("\n\n");
system("pause");
return 0;
}
Ao executarmos este código teremos o seguinte resultado: Parte inteira: 34.000000 Parte fracionária: 0.270000 |
Java ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Como usar o operador de bits & (E/AND sobre bits) em Java - Java Avançado - Manipulação de bits em JavaQuantidade de visualizações: 7074 vezes |
|
Esta dica de Java é muito útil para quem está se preparando para entrevistas de código ou desafios de programação. A manipulação de bits é fator importante para testar as habilidades de candidatos a vagas de programador, pois ela demonstra um conhecimento muito aprofundado de lógica de programação e também de rotinas de baixo nível. O operador de bits & (E/AND sobre bits) da linguagem Java é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0. Vamos analisar os seguintes valores binários: a) 0101 (5 decimal) b) 0100 (4 decimal) Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado: 0101 0100 ---- 0100 Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em Java agora. Observe o seguinte trecho de código:
public class Main {
public static void main(String[] args) {
int a = 5;
int b = 4;
int c = a & b;
// exibe o resultado (em inteiro e em bytes)
System.out.println("a = " + obterBits(a) + " (" + a + ")");
System.out.println("b = " + obterBits(b) + " (" + b + ")");
System.out.println("a & b = " + obterBits(c) + " (" + c + ")");
}
// método auxiliar que converte um inteiro em sua representação em bits
public static String obterBits(int valor){
int mascara = 1 << 31;
StringBuffer buffer = new StringBuffer(35);
for(int i = 1; i <= 32; i++){
if((valor & mascara) == 0){
buffer.append('0');
}
else{
buffer.append('1');
}
valor <<= 1;
if(i % 8 == 0){
buffer.append(' ');
}
}
return buffer.toString();
}
}
Ao executar este código teremos o seguinte resultado: a = 00000000 00000000 00000000 00000101 (5) b = 00000000 00000000 00000000 00000100 (4) a & b = 00000000 00000000 00000000 00000100 (4) |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como inserir uma substring em uma string em Java usando o método insert() da classe StringBuffer Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi Java - Como remover um elemento de uma determinada posição do ArrayList do Java usando o método remove() JavaScript - Formulários HTML - Como marcar ou desmarcar todas as checkboxes de um formulário HTML de uma só vez usando JavaScript |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





