![]() |
|
|
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. |
||
Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Livros, E-books, Apostilas e Cursos |
E-Book 350 _Exercícios Resolvidos_ de Java - PDF com 500 páginasQuantidade de visualizações: 8151 vezes |
![]() Apenas R$ 19,90 - Pagamento único - Envio imediato. Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java. Trata-se de um PDF com 500 páginas contendo 350 exercícios resolvidos para você praticar 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, internet, arquivos e diretórios, programação orientada a objetos e muito mais. Veja o conteúdo completo deste e-book acessando este link: Conteúdo do E-book 350 Exercícios Resolvidos de Java - PDF com 500 páginas. Novos exercícios resolvidos são acrescentados todos os dias. Por isso, lembre-se de solicitar sua atualização com frequência. Adquira pelo WhatsApp +55 (062) 98553-6711 (Osmar) ou diretamente pelo Mercado Pago (PIX, cartão de crédito, boleto, etc). |
Python ::: wxPython ::: Controles Visuais Básicos do wxPython |
Como obter o texto de um botão wx.Button do wxPython e exibí-lo em uma mensagem wx.MessageDialog usando a função GetLabel()Quantidade de visualizações: 7293 vezes |
|
Como obter o texto de um botão wx.Button do wxPython e exibí-lo em uma mensagem wx.MessageDialog usando a função GetLabel() O texto (rótulo) de um wx.Button do framework wxPython pode ser obtido com uma chamada à função GetLabel(). O exemplo abaixo mostra uma aplicação completa e detalha como clicar em um botão, obter seu texto e exibí-lo em uma caixa de mensagem:
# vamos importar a biblioteca wxPython
import wx
class Janela(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1,
"Usando wx.Button", size=(350, 200))
# Cria um painel
panel = wx.Panel(self)
# Cria um botão e o adiciona no painel
self.btn = wx.Button(panel, label="Clique Aqui",
pos=(10, 10), size=(100, 25))
# Anexa um evento ao botão
self.Bind(wx.EVT_BUTTON, self.OnBtnClick, self.btn)
# Método que será chamado ao clicar o botão
def OnBtnClick(self, event):
texto_btn = self.btn.GetLabel()
dlg = wx.MessageDialog(None, u"O texto do botão é: "
+ texto_btn, "Usando wx.Button", wx.OK | wx.ICON_INFORMATION)
result = dlg.ShowModal()
dlg.Destroy()
if __name__ == "__main__":
app = wx.App()
janela = Janela()
janela.Show(True)
app.MainLoop()
|
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: 19027 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. |
Java Servlets ::: Dicas & Truques ::: URLs, Documentos e Páginas |
Como compartilhar dados entre um Java Servlet e uma página JSP usando a requisição HttpServletRequestQuantidade de visualizações: 8674 vezes |
|
Quando usamos o método forward() da interface RequestDispatcher para direcionar para um outro Java Servlet ou página JSP, tanto o objeto de requisição ServletRequest quanto o objeto de resposta ServletResponse são enviados também. Assim, podemos tirar proveito desta funcionalidade para compartilhar dados entre um servlet e uma página JSP usando a requisição. Vamos ver como isso é possível. Comece analisando o seguinte servlet:
package estudos;
import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
public class MeuServlet extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException{
// cria uma instância da classe Pessoa
Pessoa p = new Pessoa();
p.setNome("Osmar J. Silva");
// vamos colocar o objeto p na requisição
request.setAttribute("pessoaBean", p);
// agora direcionamos para a página exibir.jsp
RequestDispatcher dispatcher =
request.getRequestDispatcher("/exibir.jsp");
dispatcher.forward(request, response);
}
}
Note que aqui eu já estou usando o pacote jakarta.servlet em vez de javax.servlet. Confirme se você está usando o Java EE ou Jakarta EE. Veja que no método doGet() deste Servlet nós temos a criação de uma instância da classe Pessoa (Pessoa.java). Esta classe tem a seguinte estrutura:
package estudos;
public class Pessoa{
private String nome;
public String getNome(){
return this.nome;
}
public void setNome(String nome){
this.nome = nome;
}
}
Depois de criada a instância da classe nós a colocamos na requisição atual usando:
// vamos colocar o objeto p na requisição
request.setAttribute("pessoaBean", p);
O passo seguinte é direcionar a requisição atual para a página exibir.jsp (a View do MVC). Veja o código para esta página:
<jsp:useBean id="pessoaBean" scope="request"
type="estudos.Pessoa" />
<html>
<head>
<title>Estudos Servlet</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-2">
</head>
<body>
<h4>Nome da pessoa: <jsp:getProperty name="pessoaBean"
property="nome" /></h4>
</body>
</html>
Aqui nós estamos usando <jsp:getProperty> para acessar um dos atributos do bean pessoaBean. Poderíamos usar JSTL e EL. Veja:
<%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="pessoaBean" scope="request"
type="estudos.Pessoa" />
<html>
<head>
<title>Estudos Servlet</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-2">
</head>
<body>
<h4>Nome da pessoa: <c:out value="${pessoaBean.nome}"/></h4>
</body>
</html>
Fiz o mapeamento deste Java Servlet para a URL http://localhost:8080/estudos/meuservlet. Ao chamá-la nós teremos o seguinte resultado: Nome da pessoa: Osmar J. Silva |
PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados) |
Como criar uma tabela no PostgreSQL usando o comando DDL CREATE TABLEQuantidade de visualizações: 7288 vezes |
|
O comando DDL CREATE TABLE do PostgreSQL é usado quando queremos criar uma nova tabela em uma determinada base de dados (e schema). Em geral criamos novas tabelas usando a ferramenta pgAdmin. No entanto, é importante conhecer e dominar este comando de forma a conseguirmos criar tabelas a partir da janela de Query do pgAdmin, do SQL Shell (psql) ou usando uma linguagem de programação. O comando DDL CREATE TABLE contém uma série de cláusulas opcionais. Muitas delas são abordadas nas dicas desta seção. Apenas o nome da tabela a ser criada é obrigatório. Veja o comando CREATE TABLE a seguir: CREATE TABLE produtos(); Este comando criará uma tabela vazia e sem nenhum campo no schema public da base de dados na qual estamos conectados no momento. É claro que uma tabela sem nenhum campo não possui nenhuma utilidade (a não ser que decidamos adicionar os campos mais tarde). Sendo assim, veja um comando CREATE TABLE que cria uma tabela chamada usuarios com os campos: id, nome, senha, data_cadastro: CREATE TABLE usuarios( id serial NOT NULL, nome varchar(20) NOT NULL, senha varchar(20) NOT NULL, data_cadastro date NOT NULL, PRIMARY KEY (id) ); Ao dispararmos o comando, o PostgreSQL nos exibirá a seguinte mensagem: NOTA: CREATE TABLE criará sequência implícita "usuarios_id_seq" para coluna serial "usuarios.id" NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito "usuarios_pkey" na tabela "usuarios" Query returned successfully with no result in 121 ms. Isso é sinal de que a tabela foi criada com sucesso. Para verifirmos e exibirmos os dados da tabela recém-criada, podemos disparar o seguinte comando DML SELECT: SELECT column_name, data_type, is_nullable, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'usuarios'; Como resultado teremos: column_name data_type is_nullable character_maximum_length id integer NO nome character varying NO 20 senha character varying NO 20 data_cadastro date NO É importante termos em mente a mensagem de erro que o PostgreSQL exibirá quando tentamos criar uma tabela com um nome de uma já existente na mesma base de dados e schema: NOTA: CREATE TABLE criará sequência implícita "usuarios_id_seq1" para coluna serial "usuarios.id" ERRO: relação "usuarios" já existe ********** Error ********** ERRO: relação "usuarios" já existe SQL state: 42P07 CREATE TABLE IF NOT EXISTS usuarios( id serial NOT NULL, nome varchar(20) NOT NULL, senha varchar(20) NOT NULL, data_cadastro date NOT NULL, PRIMARY KEY (id) ); Agora o PostgreSQL trocará a mensagem de erro pela seguinte mensagem de advertência: NOTA: relação "usuarios" já existe, ignorando Query returned successfully with no result in 14 ms. |
Veja mais Dicas e truques de PostgreSQL |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




