![]() |
|
|
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 Hidrostática |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Data e Hora |
Como exibir a data atual completa e as horas no formato curto em C# usando o sinalizador {0:f} da função Format() da classe StringQuantidade de visualizações: 8 vezes |
|
Nesta dica mostrarei como usar o sinalizador {0:f} da função Format() da classe String para exibir a data completa e as horas no formato curto, algo como "quarta-feira, 16 de março de 2022 11:19". Veja o código C# completo:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
// vamos obter a data e hora atual
DateTime dataHora = DateTime.Now;
// vamos exibir a data completa e as hora no formato curto
System.Console.WriteLine("Hoje é: {0:f}", dataHora);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Hoje é: quarta-feira, 16 de março de 2022 11:19 Veja que aqui eu mostrei a data e as horas diretamente na saída do programa. Podemos usar uma variável intermediária também. Veja:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
// vamos obter a data e hora atual
DateTime dataHora = DateTime.Now;
// vamos guardar a data completa e as hora no formato curto
string dataHoraStr = String.Format("{0:f}", dataHora);
System.Console.WriteLine("Hoje é: " + dataHoraStr);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
|
VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução Exit para abandonar a execução de um laço em VB.NETQuantidade de visualizações: 10462 vezes |
|
A instrução Exit pode ser usada para alterar o fluxo de controle de um programa. Há várias formas de instrução Exit, cada uma apropriada para sair (abandonar) a execução de diferentes tipos de blocos de códigos. Esta dica mostra como usar a instrução Exit para abandonar a execução dos laços Do While...Loop, Do...Loop While, Do Until...Loop, Do...Loop Until, For...Next e While. Em cada um destes laços, a instrução Exit deve vir acompanhada do nome do laço. Veja um exemplo:
Dim numero As Integer = 1
While numero <= 100
Console.WriteLine(numero)
numero += 1
If numero > 20 Then
Exit While
End If
End While
Execute este código e veja que a contagem pára no 20. Vejamos agora um exemplo do uso da instrução Exit com um laço For...Next:
For valor As Integer = 3 To 100 Step 3
Console.WriteLine(valor)
If valor > 20 Then
Exit For
End If
Next
Execute e veja como o laço é interrompido quando o valor da variável valor se torna maior que 20. Para finalizar, lembre-se de que a instrução Exit abandona a execução do laço no local exata em que esta é inserida. Tenha isso em mente para evitar efeitos indesejados em seus códigos. |
PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados) |
Como excluir uma base de dados no PostgreSQL usando o comando DDL DROP DATABASEQuantidade de visualizações: 14631 vezes |
|
Em algumas situações precisamos excluir uma base de dados no PostgreSQL. Isso pode ser feito por meio do uso do comando DLL DROP DATABASE. Este comando pode ser disparado via linha de comando SQL Shell (psql), na janela de Query do pgAdmin ou a partir de uma linguagem de programação. No entanto, é importante saber que você não conseguirá excluir uma base de dados que você ou outros usuários estejam conectados no momento. Use o comando DROP DATABASE com cuidado. Ao dispará-lo, os dados contidos na base de dados (tabelas, views, funções, triggers, etc) serão perdidos para sempre. Veja como podemos usar o comando DROP DATABASE para excluir uma base de dados chamada "estudos": DROP DATABASE estudos; Se você visualizar uma mensagem parecida com: Query returned successfully with no result in 261 ms. Então poderá estar certo de que a base de dados foi removida com sucesso. Se tentarmos excluir uma base de dados na qual alguém ainda está conectado, o PostgreSQL abortará a operação e nos exibirá a seguinte mensagem de erro: ERRO: banco de dados "estudos" está sendo acessado por outros usuários DETAIL: Há 1 outra sessão utilizando o banco de dados. ********** Error ********** ERRO: banco de dados "estudos" está sendo acessado por outros usuários SQL state: 55006 Detail: Há 1 outra sessão utilizando o banco de dados. ERRO: banco de dados "estudos" não existe ********** Error ********** ERRO: banco de dados "estudos" não existe SQL state: 3D000 DROP DATABASE IF EXISTS estudos; Agora o PostgreSQL trocará a mensagem de erro por uma mensagem de advertência: NOTA: banco de dados "estudos" não existe, ignorando Query returned successfully with no result in 14 ms. |
Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como retornar uma lista dos dispositivos de entrada MIDI no sistema usando DelphiQuantidade de visualizações: 11638 vezes |
|
Em algumas ocasiões nós precisamos obter uma lista dos dispositivos de entrada MIDI no sistema, talvez com o propósito de selecionar um determinado dispositivo em uma ListBox ou ComboBox. O trecho de código abaixo mostra como isso pode ser feito. O primeiro passo é declarar uma variável do tipo TMidiInCaps. Este registro está declarado na unit MMSystem.pas e é uma tradução da estrutura MIDIINCAPS da API do Windows. Entre outros tipos de dados, esta estrutura possui um membro szPname que retorna o nome do dispositivo. Na unit MMSystem.pas este membro está declarado como array[0..MAXPNAMELEN-1] of AnsiChar, ou seja, uma matriz de AnsiChar que será preenchida pela API do Windows e terá seu final marcado com o caractere null (NULL terminated string). Note a conversão deste valor para o tipo String no momento de inserí-lo no ComboBox. Em versões anteriores do Delphi (estou escrevendo este código no Delphi 2009) podíamos usar a função StrPas() para esta finalidade. O passo seguinte é obter a quantidade de dispositivos de entrada MIDI. Isso é feito com uma chamada à função midiInGetNumDevs da API do Windows. Uma vez obtida a quantidade de dispositivos nós usamos um laço for e, no corpo deste laço, usamos o valor da variável de controle i para efetuar uma chamada à função midiInGetDevCaps(), também da API do Windows: midiInGetDevCaps(i, @MidiInCaps, sizeof(TMidiInCaps)); Esta função recebe o identificador do dispositivo (um valor inteiro começando em 0 e indo até a quantidade de dispositivos - 1), um ponteiro para um registro MidiInCaps e o tamanho em bytes do registro. Se a função for executada com sucesso, o registro MidiInCaps será preenchido com várias informações úteis, tais como o nome do dispositivo, o ID do fabricante, o ID do produto, versão do driver, etc. Para finalizar, nós acessamos o campo szPname do registro MidiInCaps e o adicionamos no ComboBox. Veja o código completo a seguir:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
MidiInCaps: TMidiInCaps; // este record está definido em MMSystem.pas
erro: Word;
begin
// uses MMSystem
ComboBox1.Clear;
// midiInGetNumDevs retorna a quantidade de dispositivos de entrada
// MIDI no sistema
for i := 0 to midiInGetNumDevs - 1 do
begin
// vamos obter o dispositivo identificado pela variável i (uDeviceID)
erro := midiInGetDevCaps(i, @MidiInCaps, sizeof(TMidiInCaps));
if erro <> MMSYSERR_NOERROR then
raise Exception.Create('Não foi possível obter a lista de dispositivos ' +
'de entrada MIDI');
// vamos adicionar o nome do dispositivo no ComboBox
ComboBox1.Items.Add(String(MidiInCaps.szPname));
end;
end;
Ao executar este código o ComboBox será preenchido no mínimo com o valor: MPU-401 Este é o MPU 401-compatible MIDI input port, um dos dispositivos de entrada MIDI mais comuns nos PCs, embora já não esteja tão presente nos computadores mais atuais. Para fins de compatibilidade esta dica ou anotação foi escrita usando Delphi 2009. |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TField e Classes Derivadas |
Como usar a classe TField em seus programas DelphiQuantidade de visualizações: 13062 vezes |
|
A classe TField (na unit DB) é um ancestral comum de todos os componentes que representam os campos de uma tabela no banco de dados (ou um dataset cujos dados foram carregados de um arquivo do tipo texto, binário ou XML). Esta classe encapsula o comportamento comum a todos os demais componentes to tipo field (campo). Veja sua posição na hierarquia de classes do Delphi:
System.TObject
Classes.TPersistent
Classes.TComponent
DB.TField
A classe TField apresenta propriedades, eventos e métodos que são usados para as seguintes tarefas: 1) Alterar o valor de um campo em um dataset; 2) Converter o valor de um campo de um tipo para outro tipo; 3) Efetuar validações nos dados informados pelos usuários para determinados campos; 4) Definir como as informações dos campos são mostradas em tempo de exibição ou para edição; 5) Calcular o valor de um campo a partir de código escrito no evento OnCalcFields do dataset; 6) Pesquisar o valor do campo a partir de outro dataset. Em geral não criamos instâncias da classe TField diretamente. Componentes que descendem de TField são criados automaticamente a cada vez que o dataset é ativado. Estes descendentes podem ser dinâmicos (o padrão) ou persistentes. Componentes campos dinâmicos refletem as colunas dos metadados da tabela a qual pertencem no momento que o dataset é aberto. Componentes campos persistentes são criados em tempo de design usando o editor Fields, que especifica os campos no dataset, suas propriedades e a ordem em que deverão estar. A criação de componentes de campos persistentes garante que todas as vezes que uma aplicação for executada, ela usará e exibirá as mesmas colunas, na mesma ordem, até mesmo se a estrutura física da base de dados mudar. Se uma coluna em uma tabela na qual um componente de campo persistente é baseado for excluída ou alterada, o IDE gera uma exceção em vez de permitir a abertura do dataset usando um coluna não existente ou incompatível. Se isso acontecer, devemos remover o camponente field para o campo não existente usando o editor Fields. Um campo (field) em um dataset é sempre tratado como uma das classes descendentes de TField abaixo: TADTField TDateField TReferenceField TAggregateField TDateTimeField TSmallIntField TArrayField TFloatField TSQLTimeStampField TAutoIncField TFMTBCDField TStringField TBCDField TGraphicField TTimeField TBinaryField TGuidField TVarBytesField TBlobField TIDispatchField TVariantField TBooleanField TIntegerField TWideStringField TBytesField TInterfaceField TWordField TCurrencyField TLargeintField TDataSetField TMemoField
procedure TForm3.Button3Click(Sender: TObject);
var
campo: TField;
begin
// vamos obter o campo com o nome "titulo" do registro atual
campo := ClientDataSet1.FieldByName('titulo');
// vamos mostrar o valor do campo
ShowMessage('O valor do campo é: ' + campo.AsString);
end;
Ao executarmos este código teremos um resultado parecido com: "O valor do campo é: Programando em Java". Esta dica foi escrita e testada no Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




