![]() |
|
|
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 ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar o componente TClientDataSet do Delphi em suas aplicações de banco de dadosQuantidade de visualizações: 16524 vezes |
|
Um objeto da classe TClientDataSet implementa um conjunto de dados independente de banco de dados. Este controle representa um conjunto de dados em memória (in-memory). Antes de prosseguirmos, veja a posição desta classe na hierarquia de classes do Delphi:
System.TObject
Classes.TPersistent
Classes.TComponent
DB.TDataSet
DBClient.TCustomClientDataSet
DBClient.TClientDataSet
Um controle TClientDataSet pode ser usado das seguintes formas: a) Um conjunto de dados baseado em arquivo, único e totalmente funcional direcionado a aplicações compostas de apenas uma camada. Quando usado desta forma, o client dataset representa os dados armazenados em um arquivo dedicado na máquina do usuário. b) Um buffer em memória local dos registros de um outro conjunto de dados. O outro conjunto de dados (a fonte dos dados) pode residir no mesmo formulário ou data module que o client dataset (por exemplo, quando o client dataset fornece navegação e edição para os dados de um conjunto de dados unidirecional). O conjunto de dados fonte pode também residir em um sistema separado quando o client dataset apoia a parte cliente de uma aplicação de bancos de dados de múltiplas camadas. A forma mais comum de se usar um controle TClientDataSet é acessando a aba Data Acccess da Tool Palette (Paleta de Ferramentas) e arrastando-o para o seu formulário. Em seguida ajustamos algumas de suas propriedades em tempo de design e pronto. Veja o passo-a-passo para configurar um TClientDataSet para representar uma tabela no banco de dados MySQL (outras dicas minhas mostram como efetuar a conexão com outros bancos de dados): 1) Certifique-se de que o banco de dados MySQL está devidamente configurado e funcionando. Inicie-o, anote o nome de usuário e senha e vamos começar. 2) Vá até a aba de componentes dbExpress e arraste um componente TSQLConnection para o formulário. Este é o componente responsável pela conexão com o banco de dados. Selecione o componente no formulário de forma a acessar suas propriedades no Object Inspector. Em seguida siga atentamente as observações a seguir: a) Vá na propriedade ConnectioName e selecione MySQLConnection. Automaticamente a propriedade Driver é definida como MySQL. A propriedade LibrayName será definida como dbxmys.dll. O mesmo acontece com a propriedade VendorLib, que é definida como libmysql.dll. dbxmys.dll é fornecida com o Delphi enquanto libmysql.dll vem com a instalação do MySQL e deverá estar em C:\Windows\System para que sua aplicação seja executada com sucesso. b) O simples fato de definirmos o valor MySQL para a propriedade ConnectionName faz com que os parâmetros de conexão sejam criados com os valores padrões e guardados na propriedade Params. O próximo passo é alterar estes valores de forma a refletir a realidade do banco de dados que vamos usar. Vá em Params e acione o editor Value List Editor. Em HostName você deverá informar o nome ou IP do servidor MySQL. Se estiver rodando localmente use apenas "localhost". Em Database informe o nome da base de dados, por exemplo, "estoque". Em User_Name informe o usuário do banco de dados. Geralmente é "root". Em Password informe a senha do banco de dados. Pressione OK. c) Vá na propriedade LoginPrompt e altere seu valor para False. Isso evita que a tela de login seja exibida quando tentarmos efetuar a conexão. Agora vá na propriedade Connected e altere seu valor para True. Se correr tudo bem você já estará conectado ao banco de dados MySQL. 3) Agora coloque um componente TSQLDataSet no formulário e defina sua propriedade SQLConnection para o componente TSQLConnection que representa a conexão com o banco de dados. Em seguida defina o valor "ctTable" para a propriedade CommandType. Na propriedade CommandText você deverá informar o nome da tabela que será representada por este TSQLDataSet. Finalmente ajuste a propriedade Active para True. 4) O próximo passo é colocar no formulário um componente TDataSetProvider (na aba Data Access). Este componente é responsável por fazer a conexão com o conjunto de dados (dataset), extrair os dados do SQLDataSet e gerar os comandos de atualização SQL adequados. Assim, informe o valor "SQLDataSet1" para a sua propriedade DataSet. 5) Finalmente chegamos ao componente TClientDataSet. Vá na aba Data Acccess e arraste um TClientDataSet para o formulário. Em seguida informe o valor "DataSetProvider1" para sua propriedade ProviderName. Ajuste sua propriedade Active para True. 6) Hora de exibir e manipular os dados. Vá na aba Data Access e arraste um controle TDataSource para o formulário. Aponte sua propriedade DataSet para "ClientDataSet1". Agora vá na aba Data Controls e arraste um TDBGrid para o formulário. Ajuste sua propriedade DataSource para "DataSource1". Se tudo correu bem, você já verá os registros da tabela serem exibidos no DBGrid. 7) Hora de executar a aplicação. Pressione F9 e vamos ao resultado. Experimente navegar e editar os registros no DBGrid. A aplicação permitirá que você faça isso. No entanto, ao fechar a aplicação e abrí-la novamente você perceberá que as alterações não foram refletidas no banco de dados. Para que isso aconteça, coloque o código abaixo no evento Click de um botão:
procedure TForm3.Button1Click(Sender: TObject);
begin
if (ClientDataSet1.ChangeCount > 0) then
ClientDataSet1.ApplyUpdates(-1);
end;
Pronto. Execute a aplicação novamente e faça modificações nos dados exibidos no DBGrid (é preciso sair da linha de edição para que os dados sejam atualizados no DBGrid). Clique no botão para atualizar os dados na tabela do banco de dados. Feche a aplicação a abra-a novamente. Note que agora os dados foram atualizados com sucesso. Esta dica foi escrita e testada no Delphi 2009. |
Python ::: PyQt GUI Toolkit ::: QMainWindow |
Como criar a janela principal de uma aplicação Python PyQt usando a classe QMainWindowQuantidade de visualizações: 1881 vezes |
|
Em geral toda aplicação GUI, ou seja, uma aplicação de interface visual, rodando no Window, Linux, MAC, etc, possui uma janela principal. No PyQt tal janela é criada como uma instância da classe QMainWindow. Veja a posição desta classe na hierarquia de classes do PyQt:
QObject, QPaintDevice
QWidget
QMainWindow
Uma janela QMainWindow possui o seu próprio layout, no qual podemos adicionar uma barra de ferramentas QToolBar, um QDockWidget (que serve para controles que "grudam" em lados diferentes da tela), uma barra de menus QMenuBar e uma barra de status QStatusBar. O layout oferecido pela classe QMainWindow possui uma área central que pode ser ocupada por qualquer tipo de controle visual. É nessa área central que podemos colocar outros tipos de gerenciadores de layouts, que servirão como containers para os componentes visuais da aplicação. Veja uma aplicação PyQt completa na qual temos uma janela principal QMainWindow e um botão QPushButton. Observe como tiramos proveito da programação orientada em Python para criar uma classe JanelaPrincipal que herda de QMainWindow:
# vamos importar os módulos necessários
import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *
# vamos criar uma classe que herda de QMainWindow
class JanelaPrincipal(QMainWindow):
# construtor da classe
def __init__(self):
super().__init__()
# definimos o título da janela
self.setWindowTitle("Cadastro de Produtos")
# vamos criar um botão QPushButton
botao = QPushButton("Novo Produto")
# definimos este botão como o controle central
# da janela principal
self.setCentralWidget(botao)
if __name__== "__main__":
# cria a aplicação
app = QApplication(sys.argv)
# cria a janela principal e a coloca visível
janela_principal = JanelaPrincipal()
janela_principal.show()
# executa a aplicação
app.exec()
|
JavaScript ::: DOM (Document Object Model) ::: window Object (Objeto window) |
Como usar o objeto window em suas aplicações HTML + JavaScriptQuantidade de visualizações: 9572 vezes |
|
O objeto window representa a janela do browser, uma janela em um frame ou janela de diálogo contendo um documento HTML. Este objeto fornece várias informações a respeito da janela (name, navigator, location, history, etc.), permite acesso ao documento contido na janela e suporta vários métodos úteis (alert(), confirm(), addEventListener(), attachEvent(), etc). Veja uma página HTML na qual temos um código JavaScript que acessa a janela atual e usa seu método alert() para exibir uma mensagem ao usuário:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos exibir uma mensagem ao usuário
window.alert("JavaScript é muito bacana!");
</script>
</body>
</html>
O objeto window pode também representar uma janela contida em um frame ou em um elemento iframe, ou ainda em uma janela secundária (criada com os métodos open(), showModalDialog() ou showModelessDialog()). Eis algumas observações que devem ser bem memorizadas: a) Se a janela estiver contida em um frame ou elemento iframe, ela é uma janela filha da janela que contém o elemento frame. Para obter a janela mãe só precisamos usar a propriedade parent da janela filha. Veja: <script type="text/javascript"> // vamos obter a janela mãe var janela_mae = window.parent; </script> b) Se a janela for aberta por meio dos métodos open(), showModalDialog() ou showModelessDialog(), então a janela que a criou pode ser acessada por meio da propriedade opener. Os membros da janela atual podem ser acessados diretamente, sem a necessidade de passarmos pelo objeto window, ou seja, podemos usar alert() em vez de window.alert(), ainda que a última forma é a preferida. O objeto window está disponível para acesso a partir de qualquer ponto de nossos códigos JavaScript. Assim, devemos nos esforçar ao máximo para não termos variáveis com o mesmo nome das propriedades e métodos deste objeto. Dica escrita e testada no Internet Explorer (IE 8) e no Firefox 3.6. |
Java ::: Dicas & Truques ::: Data e Hora |
Como retornar a hora atual em Java usando um objeto da classe Calendar - Datas e Horas em JavaQuantidade de visualizações: 3 vezes |
Nesta dica mostrarei como podemos usar um objeto da classe Calendar da linguagem Java e seu método get() para obtermos as partes individuais de uma hora e exibí-las. Veja o código completo a seguir:
package arquivodecodigos;
import java.util.Calendar;
public class Estudos{
public static void main(String args[]){
Calendar agora = Calendar.getInstance();
// horas, minutos e segundos
int horas = agora.get(Calendar.HOUR);
int minutos = agora.get(Calendar.MINUTE);
int segundos = agora.get(Calendar.SECOND);
System.out.println("Hora Atual: " + horas +
":" + minutos + ":" + segundos);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Hora Atual: 11:10:40 |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como elevar uma base a um determinado expoente usando o método pow() do objeto Math do JavaScript VisuAlg - Exercício Resolvido de VisuAlg - Um programa que lê três números inteiros e mostra o maior |
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 |




