Você está aqui: Delphi ::: Dicas & Truques ::: Data e Hora

Como adicionar ou subtrair meses de uma data em Delphi usando a função IncMonth()

Quantidade de visualizações: 21304 vezes
Em algumas situações precisamos adicionar ou subtrair meses de uma determinada data. Em Delphi isso pode ser feito com o auxílio da função IncMonth() da unit DateUtils. Este função aceita um TDateTime e a quantidade de meses que queremos acrescentar ao TDateTime fornecido como argumento. O retorno será um novo TDateTime com a quantidade de meses acrescida.

Veja um trecho de código no qual adicionamos 2 meses à data atual:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  hoje: TDateTime;
begin
  // não esqueça de adicionar DateUtils ao seus uses

  // vamos obter a data de hoje
  hoje := Now;

  // vamos exibir a data de hoje
  ShowMessage('Hoje é: ' + DateToStr(hoje));

  // vamos adicionar 2 meses à data de hoje
  hoje := IncMonth(hoje, 2);

  // vamos exibir o resultado
  ShowMessage('Daqui a 2 meses será: ' + DateToStr(hoje));
end;

É possível também usar a função IncMonth() para substrair meses de uma data. Para isso só precisamos fornecer uma quantidade negativa de meses. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  hoje: TDateTime;
begin
  // não esqueça de adicionar DateUtils ao seus uses

  // vamos obter a data de hoje
  hoje := Now;

  // vamos exibir a data de hoje
  ShowMessage('Hoje é: ' + DateToStr(hoje));

  // vamos subtrair 3 meses da data de hoje
  hoje := IncMonth(hoje, -3);

  // vamos exibir o resultado
  ShowMessage('Há 3 meses era: ' + DateToStr(hoje));
end;

O valor padrão para o segundo argumento de IncMonth() é 1.

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

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: VCL - Visual Component Library ::: TListBox

Como excluir o item ou itens selecionados em uma TListBox do Delphi usando a função DeleteSelected

Quantidade de visualizações: 13140 vezes
Em algumas ocasiões nós precisamos excluir o item ou os itens selecionados em uma TListBox. Isso pode ser feito com o auxílio do método DeleteSelected da classe TListBox. Veja um trecho de código no qual excluímos apenas o item selecionado:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.FormCreate(Sender: TObject);
begin
  // vamos adicionar alguns itens na ListBox
  ListBox1.Items.Add('Goiânia');
  ListBox1.Items.Add('Curitiba');
  ListBox1.Items.Add('Brasilia');
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos excluir o item selecionado
  ListBox1.DeleteSelected;
end;

É possível conseguir o mesmo resultado usando o método Delete() do objeto Items (do tipo TStrings). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos excluir o item selecionado
  ListBox1.Items.Delete(ListBox1.ItemIndex);
end;

Note que o método Delete() do objeto Items exige o índice do elemento a ser removido. Com o método DeleteSelected da classe TListBox esta exigência não existe. Além disso, o método DeleteSelected permite excluir mais de um elemento selecionado, ou seja, ele excluir todos os elementos selecionados. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.FormCreate(Sender: TObject);
begin
  // vamos adicionar alguns itens na ListBox
  ListBox1.Items.Add('Goiânia');
  ListBox1.Items.Add('Curitiba');
  ListBox1.Items.Add('Brasilia');

  // para que este exemplo funcione corretamente, a ListBox
  // deverá permitir seleção múltipla
  ListBox1.MultiSelect := True;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos excluir todos os itens selecionados
  ListBox1.DeleteSelected;
end;

Execute este código, selecione mais de um item e clique no botão para verificar o resultado.

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


Delphi ::: Dicas & Truques ::: Bilbiotecas Estáticas (obj) e Dinâmicas (DLLs)

Apostila Delphi para iniciantes - Como criar sua primeira DLL usando Delphi

Quantidade de visualizações: 18696 vezes
Em dicas anteriores você aprendeu o que é um DLL e sua importância para a programação no ambiente Windows. Nesta dica mostrarei como criar uma DLL bem simples e usá-la a partir de um programa Delphi. Para isso siga atentamente os passos abaixo:

1) Vá em File -> New -> Other;

2) Selecione Delphi Projects e escolha DLL Wizard;

3) Neste momento o DLL Wizard criará o esqueleto do código fonte da DLL. Note que o código desta unit é bem parecido com aquele da unit de uma aplicação. A diferença principal é o uso da palavra-chave library em vez de program:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

library Project2;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes;

{$R *.res}

begin
end.

Salve esta unit como MinhaDLL.dproj em um diretório de sua preferência. Em seguida vamos criar uma rotina que receberá dois valores inteiros e retornará sua soma. Veja a modificação no código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

library MinhaDLL;

function Somar(a, b: Integer): Integer; stdcall;
begin
  Result := a + b; // retorna a soma
end;

{ vamos exportar (export) a função Somar }
exports
  Somar;

begin
end.

Nossa DLL está pronta. Agora vá no menu Project -> Build MinhaDLL (ou pressione Shift+F9). Se tudo correu bem você terá um arquivo chamado MinhaDLL.dll no diretório no qual você salvou o projeto. O próximo passo é aprender a carregar esta DLL a partir de seus programas Delphi. Veja mais dicas nesta seção para aprender como isso é feito.

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


Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter uma string em um valor numérico inteiro em Delphi usando as funções StrToInt(), TryStrToInt() e StrToIntDef()

Quantidade de visualizações: 33274 vezes
Em algumas situações precisamos converter strings em valores numéricos do tipo inteiro. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos.

Vamos começar com a função StrToInt() da unit SysUtils. Esta função recebe uma string representando um valor inteiro válido e retorna um valor inteiro. Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  valor1, valor2, soma: Integer;
begin
  // vamos receber as strings dos TEdits e converter
  // seus valores para inteiros
  valor1 := StrToInt(Edit1.Text);
  valor2 := StrToInt(Edit2.Text);

  // vamos obter a soma dos dois valores
  soma := valor1 + valor2;

  // vamos exibir o resultado. Note o uso de IntToStr() para
  // converter o valor inteiro em string
  ShowMessage('A soma é: ' + IntToStr(soma));
end;

Note que, se a string sendo convertida possuir um valor inteiro inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToInt(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Integer que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: Integer;
begin
  // vamos tentar converter o valor da caixa de texto
  // em um inteiro
  if TryStrToInt(Edit1.Text, valor) then
    ShowMessage('Conversão efetuada com sucesso.')
  else
    ShowMessage('Erro na conversão');
end;

Há ainda uma terceira possibilidade: usar a função StrToIntDef(). Esta função funciona exatamente da mesma forma que StrToInt(), exceto que agora, se houver um erro de conversão, um valor inteiro padrão será retornado. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: Integer;
begin
  // vamos converter o valor da caixa de texto
  // em um inteiro. Se a conversão não puder ser feita
  // o valor 10 será atribuído à varial valor
  valor := StrToIntDef(Edit1.Text, 10);

  // vamos exibir o resultado
  ShowMessage(IntToStr(valor));
end;

Caso você precise trabalhar com inteiros de 64 bits, poderá usar as funções StrToInt64(), StrToInt64Def() e TryStrToInt64().

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


Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Estrutura e propriedade dos materiais

O carbono é um elemento que existe em várias formas polimórficas e também no estado amorfo.

A figura a seguir representa, respectivamente, quais estruturas desse elemento?



A) Uma célula unitária para a estrutura cristalina da grafita e a estrutura do diamante.

B) Uma estrutura de um sólido cristalino de carbono simples e a estrutura do diamante.

C) Uma célula unitária para a estrutura cúbica do diamante e a estrutura da grafita.

D) A estrutura de uma célula de carbono da grafita e a estrutura cristalina do diamante.

E) A estrutura da grafita e uma célula unitária para a estrutura cristalina cúbica do diamante.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Noções de licitação pública

Modalidade de licitação é a forma específica de conduzir o procedimento licitatório a partir de critérios definidos em lei. Sobre as modalidades da licitação pública, analise as afirmativas a seguir:

I. São modalidades de licitação taxativamente expressas tanto no texto da Lei n.º 8.666/1993 quanto no da Lei n.º 14.133/2021: a concorrência, a tomada de preços, o convite, o concurso, o leilão e o pregão.

II. Na modalidade convite, vigente na Lei n.º 8.666/1993, mas suprimida na Lei n.º 14.133/2021, o instrumento convocatório carta-convite prescinde de publicação, mas não de publicidade.

III. Concurso é a modalidade de licitação que visa a selecionar candidatos concorrentes a um cargo efetivo de uma entidade governamental.

IV. Leilão é a modalidade de licitação utilizada para a venda de bens.

Estão corretas:

A) I, II e IV.

B) II e III.

C) II e IV.

D) I, III e IV.

E) I, II, III e IV.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

A coleção Set da linguagem Python permite itens repetidos.

A) Verdadeiro

B) Falso
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em AutoCAD Civil 3D

Alinhamentos no AutoCAD Civil 3D

Qual dos objetos abaixo é constituido de uma série de linhas e curvas que representam mudanças na elevação ao longo de um alinhamento?

A) Assembly (Montagem)

B) Profile (Perfil)

C) Corridor (Corredor)

D) Surface (Superfície)
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Princípios específicos do Direito do Consumidor

(Juiz do Trabalho - RJ - 2015). Sob a visão clássica, cinco são os princípios que regem o direito contratual. A relação de consumo é ajustada por contrato e aqueles princípios também a ela se aplicam. Contudo, em face da natureza da relação de consumo, alguns desses princípios têm seu valor reduzido, enquanto outros assumem relevância. Tem relevância para a relação de consumo, o seguinte princípio do direito contratual:

A) Da ordem pública.

B) Da relatividade dos contratos.

C) Da boa-fé.

D) De obediência às regras mercantis.

E) Da autonomia da vontade.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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