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 ::: Arquivos e Diretórios

Como excluir diretórios em Delphi usando a função RemoveDir()

Quantidade de visualizações: 16215 vezes
Em algumas situações nossas aplicações Delphi precisam remover diretórios. Isso pode ser feito com o auxílio da função RemoveDir() da unit SysUtils. Esta função recebe uma string representando o diretório a ser excluído e retorna um valor true se o diretório foi excluído com sucesso e false em caso contrário. Para que o diretório seja excluído com sucesso ele deverá estar vazio.

Veja um trecho de código no qual usamos a função RemoveDir() para remover um diretório:

procedure TForm1.Button1Click(Sender: TObject);
var
  diretorio: String;
begin
  // vamos excluir o diretório abaixo
  diretorio := 'C:\estudos_delphi\arquivo';

  if RemoveDir(diretorio) then
    ShowMessage('Diretório excluído com sucesso.')
  else
    ShowMessage('Não foi possível excluir o diretório.');
end;

Ao executar este código Delphi nós teremos o seguinte resultado:

Diretório excluído com sucesso.

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


Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural

Como calcular a Posição da Linha Neutra em vigas de concreto armado usando Python - Python para Engenharia Civil - Cálculo Estrutural

Quantidade de visualizações: 768 vezes
O concreto possui excelente resistência à compressão, porém, sua resistência à tração é muito pequena, chegando em torno de 10% da sua resistência à compressão. O aço, por sua vez, apresenta alta resistência à tração.

Por esta razão a combinação destes dois materiais resulta no que conhecemos por concreto armado, no qual o concreto, no caso das vigas, resiste às solicitações de compressão (em geral na parte superior da viga) e o aço se encarrega da tração (na parte inferior da viga).

Entre as forças de compressão e tração da viga de concreto armado existe uma região na qual as tensões são nulas, ou seja, não há nem tração nem compressão. Essa região é conhecida como linha neutra da viga e é usada, entre outras coisas, para verificarmos se a viga se encontra nas condições mínimas de dutibilidade exigidas pela ABNT NBR 6118/2014.

Outra característica muito importante da linha neutra é que ela nos permite indicar em qual domínio de deformação as nossas vigas de concreto armado estão trabalhando.

A posição da linha neutra em vigas de concreto armado pode ser calculada por meio da seguinte fórmula:

\[x = 1,25 \cdot d \cdot \left(1 - \sqrt{1 - \frac{M_d}{0,425 \cdot b_w \cdot d^2 \cdot f_\text{cd}}}\right)\]

Onde:

x é a posição da linha neutra a partir da fibra mais comprimida da viga, em metros (que depois convertemos para cm);

d é a altura útil da viga em metros;

Md é o momento solicitante de cálculo na viga, em kN.m;

bw é a largura da viga, em metros;

fcd é a resistência de cálculo do concreto, em kN/m2;

Veja agora o código Python completo que pede para o usuário informar a altura e largura da viga em centímetros, o momento solicitante na viga em kN.m e o FCK do concreto em Mpa, mostra a posição da linha neutra da viga e informa se ela obedece ao valor máximo imposto pela ABNT NBR 6118/2014 e também o domínio de deformação que ela está atuando:

# precisamos importar o módulo Math
import math

# função principal do programa Python
def main():
  # vamos pedir para o usuário informar a altura da viga
  altura = float(input("Informe a altura H da viga em cm: "))
  # vamos converter de centímetros para metros
  altura = altura / 100.00

  # vamos pedir para o usuário informar a largura da viga
  largura = float(input("Informe a largura bw da viga em cm: "))
  # vamos converter de centímetros para metros
  largura = largura / 100.00

  # vamos calcular a altura útil da viga
  # aqui eu usei 0.9 mas alguns engenheiros usam 0.95
  altura_util = 0.9 * altura

  # vamos pedir para o usuário informar o momento
  # máximo solicitante Mk (calculado no Ftool ou outra ferramenta)
  Mk = float(input("Informe o momento solicitante Mk em kN.m: "))
  # vamos definir o valor do gama f
  yf = 1.4
  # calculamos o md, ou seja, o momento solicitante de cálculo
  Md = Mk * yf

  # vamos pedir para o usuário informar o FCK do concreto
  fck = float(input("Informe o FCK do concreto em Mpa: "))
  # vamos definir o valor do gama c
  yc = 1.4
  # calculamos o fcd, ou seja, a resistência de cálculo do concreto
  fcd = fck / yc

  # finalmente vamos calcular a posição da linha neutra
  # note que converti o fcd de Mpa para kN/m2
  x = 1.25 * altura_util * (1 - math.sqrt(1 - (Md / (0.425 *
    largura * math.pow(altura_util, 2) * (fcd * 1000.0)))))
  
  # vamos mostrar os resultados 
  print("\nA altura útil da viga é: {0} cm ({1} m)".format(
    round(altura_util * 100, 5), round(altura_util, 5)))
  print("O momento solicitante de cálculo é: {0} kN.m".format(
    round(Md, 5)))
  print("O fcd do concreto é: {0} Mpa".format(round(fcd, 5)))
  print("A posição da linha neutra é: {0} cm".format(round(x * 100.0, 5)))
  
  # vamos verificar se a posição da linha neutra está dentro do
  # limite máximo imposto pela ABNT NBR 6118/2014 para FCK até 50 Mpa
  if ((x / altura_util) <= 0.45):
    print("Garante condições mínimas de dutibilidade? SIM")
  else:
    print("Garante condições mínimas de dutibilidade? NÃO")

  # vamos verificar o domínio de deformação da vaga
  temp = x / altura_util
  if (temp <= 0.167):
    print("A viga está trabalhando no domínio 1")
  elif ((temp > 0.167) and (temp <= 0.259)):
    print("A viga está trabalhando no domínio 2")
  elif ((temp > 0.259) and (temp <= 0.628)):
    print("A viga está trabalhando no domínio 3")
  else:
    print("A viga está trabalhando no domínio 4/5")

if __name__ == "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe a altura H da viga em cm: 35
Informe a largura bw da viga em cm: 19
Informe o momento solicitante Mk em kN.m: 32.3
Informe o FCK do concreto em Mpa: 25

A altura útil da viga é: 31.5 cm (0.315 m)
O momento solicitante de cálculo é: 45.22 kN.m
O fcd do concreto é: 17.85714 Mpa
A posição da linha neutra é: 6.81136 cm
Garante condições mínimas de dutibilidade? SIM
A viga está trabalhando no domínio 2


Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como definir ou retornar a cor de fundo de uma determinada coluna do TDBGrid do Delphi

Quantidade de visualizações: 9987 vezes
Em algumas situações gostaríamos de definir a cor de fundo de uma determinada coluna do DBGrid. Isso pode ser feito por meio da propriedade Color da classe TColumn.

Em tempo de design a cor de fundo de um coluna pode ser definida clicando-se com o botão direito do DBGrid e escolhendo a opção Columns Editor. Em seguida clique na coluna desejada e ajuste sua propriedade Color no Object Inspector.

Em tempo de execução podemos definir a cor de fundo para uma coluna usando o seguinte trecho de código:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos definir a cor de fundo para a primeira coluna
  DBGrid1.Columns[0].Color := Graphics.clYellow;
end;

Veja que eu defini a cor de fundo como sendo uma das constantes definidas na unit Graphics. Lembre-se de que também podemos fornecer um valor RGB.

Veja agora um trecho de código que mostra como obter a cor de fundo da coluna:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos obter a cor de fundo da primeira coluna
  ShowMessage('A cor de fundo da coluna é: ' +
    ColorToString(DBGrid1.Columns[0].Color));
end;

Ao executarmos este código temos uma mensagem parecida com:

"A cor de fundo da coluna é: clSilver".

Esta dica foi escrita e testada no Delphi 2009.


C# ::: Dicas & Truques ::: Validação de Dados

C# Windows Forms - Como validar o conteúdo de uma caixa de texto usando o evento Validating da classe Control

Quantidade de visualizações: 18439 vezes
O evento Validating (disponível para todas as classes que herdam de System.Windows.Forms.Control) é muito útil quando precisamos verificar a validade dos valores inseridos nos controle Windows Forms. Neste exemplo mostrarei como usá-lo para validar o conteúdo de um TextBox. Aqui veremos como verificar se o conteúdo inserido é um valor inteiro válido.

Tudo começa com a propriedade CausesValidation da classe Control. Esta propriedade nos permite definir se o controle provocará uma validação de seus dados quando o mesmo estiver prestes a perder o foco, ou seja, o usuário começara a interagir com outro controle após inserir dados no controle alvo da validação. Se o valor desta propriedade for true a validação ocorrerá.

Em seguida voltamos nossa atenção para o evento Validating (também declarado originalmente na classe Control). Este evento é disparado quando a propriedade CausesValidation é true e o controle está prestes a perder o foco (o usuário está saindo para interagir com outro controle). Veja a ordem dos eventos quando estamos saindo do controle usando o teclado:

a) Leave
b) Validating
c) Validated
d) LostFocus

Se estivermos saindo do controle usando o mouse (clicando em outro controle), a ordem é:

a) Leave
b) Validating
c) Validated

Veja um exemplo do uso do evento Validating de um TextBox:

private void textBox1_Validating(object sender, CancelEventArgs e){
  MessageBox.Show("Meu conteúdo pode ser validado agora");
}

Experimente executar este código, coloque o foco na caixa de texto e depois "saia" para outro componente. Você verá a caixa de mensagem ser exibida.

O tratador de evento Validating recebe um objeto da classe CancelEventArgs. Esta classe possui apenas uma propriedade chamada Cancel. Se o valor desta propriedade for definido como true, o evento Validating (e todos que viriam após ele) é cancelado. Isso faz com que o foco fique preso no controle até que o usuário informe o valor correto. Veja:

private void textBox1_Validating(object sender, CancelEventArgs e){
  // vamos verificar se a caixa de texto contém um valor inteiro válido
  try{
    // vamos tentar converter o texto recebido em um valor inteiro
    int valor = Int32.Parse(textBox1.Text);
    MessageBox.Show("Validação ocorreu com sucesso!");
  }
  catch(FormatException fe){
    // não conseguimos converter o texto em um valor inteiro
    MessageBox.Show("Valor inválido! Tente novamente! " +
      fe.Message.ToString());
    // limpamos a caixa de texto
    textBox1.Text = "";
    // e "prendemos" o foco na caixa de texto
    e.Cancel = true;
  }
}

Neste trecho de código nós usamos um bloco try...catch para tentar converter o texto do TextBox em um valor inteiro. Se houver falha na conversão nós avisamos o usuário, limpamos a caixa de texto e forçamos o usuário a fazer a correção.

Para finalizar, entra em cena o evento Validated. Este evento é disparado imediatamente após o evento Validating finalizar sua parte e é um bom lugar para avisarmos o usuário sobre o sucesso da validação ou remover quaisquer efeito visual que tenhamos inserido durante o processo de validação. Veja:

private void textBox1_Validating(object sender, CancelEventArgs e){
  // vamos verificar se a caixa de texto contém um valor inteiro válido
  try{
    // vamos tentar converter o texto recebido em um valor inteiro
    int valor = Int32.Parse(textBox1.Text);
  }
  catch(FormatException fe){
    // não conseguimos converter o texto em um valor inteiro
    MessageBox.Show("Valor inválido! Tente novamente! " +
      fe.Message.ToString());
    // limpamos a caixa de texto
    textBox1.Text = "";
    // e "prendemos" o foco na caixa de texto
    e.Cancel = true;
  }
}

private void textBox1_Validated(object sender, EventArgs e){
  MessageBox.Show("Validação ocorreu com sucesso!");
}

Veja que tudo que fizemos aqui foi remover a mensagem de sucesso de validação do evento Validating para o evento Validated.


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

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


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