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

Aprenda a usar a variável global ShortDateFormat para controlar a formatação de datas

Quantidade de visualizações: 14184 vezes
A variável global ShortDateFormat fornece a formatação curta usada, por padrão, na conversão de datas em strings. Esta variável é usada pelas funções DateToStr(), DateTimeToStr() e DateTimeToString(). Os caracteres de formatação usados são:

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

   y  = Ano com 2 dígitos 
  yy  = Ano com 2 dígitos 
yyyy  = Ano com 4 dígitos 
   m  = Número do mês do ano sem o 0 no início 
  mm  = Número do mês com 2 dígitos 
 mmm  = Mês usando nomes curtos (Jan) 
mmmm  = Mês usando nomes longos  (Janeiro) 
   d  = Número do dia sem o 0 no início 
  dd  = Número do dia com dois dígitos 
 ddd  = Dia usando nomes curtos (Dom) 
dddd  = Dia usando nomes longos  (Domingo) 

Veja o trecho de código abaixo:

----------------------------------------------------------------------
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
  data: TDateTime;
begin
  // vamos construir a data
  data := StrToDate('13/03/2009');

  // vamos exibir usando a formatação padrão de ShortDateFormat
  showMessage(DateToStr(data));

  // vamos alterar o padrão de formatação de ShortDateFormat
  ShortDateFormat := 'dd ''de'' mmmm ''de'' yyyy';

  // experimente também
  // ShortDateFormat := 'dd/mm/yyyy';

  // vamos exibir usando a nova formatação
  ShowMessage(DateToStr(data));
end;

Como a variável ShortDateFormat é indicada para uso global, é interessante você definir o formato customizado em apenas um lugar de seus códigos, de forma a reaproveitar a formatação nas demais partes de seus programas.

No Windows, a formatação inicial de ShowDateFormat vem de LOCALE_SSHORTDATE, uma constante da API do Windows.

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 ::: TEdit

Como obter o conteúdo de um TEdit do Delphi em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXT

Quantidade de visualizações: 11793 vezes
Embora o Delphi já nos forneça as ferramentas necessárias para obter o conteúdo de um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXT.

A função SendMessage() da API do Windows possui a seguinte assinatura em C/C++:

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

LRESULT SendMessage(          
  HWND hWnd,
  UINT Msg,
  WPARAM wParam,
  LPARAM lParam
);

No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:

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

// Protótipo
{$EXTERNALSYM SendMessage}
function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; 
  lParam: LPARAM): LRESULT; stdcall;

// Implementação
function SendMessage; external user32 name 'SendMessageW';

Note que precisamos de um HWND (parâmetro hWnd) para a caixa de texto. Temos que fornecer também a quantidade de caracteres que serão lidos (parâmetro wParam) e um buffer no qual os caracteres lidos a partir da caixa de texto serão colocados (parâmetro lParam). 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
  buffer: String;
  tamanho: Integer;
begin
  // vamos obter a quantidade de caracteres na caixa de texto
  tamanho := SendMessage(Edit1.Handle, WM_GETTEXTLENGTH, 0, 0);

  // vamos ajustar o tamanho do buffer
  SetLength(buffer, tamanho);

  // vamos usar a mensagem WM_GETTEXT para obter o conteúdo
  // da caixa de texto
  SendMessage(Edit1.Handle, WM_GETTEXT, tamanho + 1, lParam(@buffer[1]));

  // vamos exibir o resultado
  ShowMessage('O conteúdo do edit é: ' + buffer);
end;

Veja que usei também a mensagem WM_GETTEXTLENGTH para obter a quantidade de caracteres na caixa de texto. Isso foi necessário para redimensionarmos o buffer de caracteres para um tamanho capaz de acomododar todo o conteúdo do edit.


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como listar todos os arquivos de um diretório usando Delphi

Quantidade de visualizações: 1454 vezes
Como listar todos os arquivos de um diretório usando Delphi

Em algumas situações precisamos listar todos os arquivos contidos em um determinado diretório. Para isso podemos usar a função abaixo. Esta função recebe o caminho e nome de um diretório e uma coleção de strings TStrings. Como resultado de sua execução, a função insere em TStrings todos os nomes dos diretórios encontrados. Para facilitar o entendimento do exemplo eu incluí uma chamada à função a partir do evento Click de um botão. Tenha a certeza de colocar uma TListBox no formulário antes de executar o código:

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

procedure listarArquivosDir(diretorio: string; lista: TStrings);
var
  search_rec: TSearchRec;
begin
  if FindFirst(diretorio + '*.*', faAnyFile, search_rec) = 0 then
    begin
      repeat
        if search_rec.Attr <> faDirectory then
          lista.Add(search_rec.Name);
      until FindNext(search_rec) <> 0;

      FindClose(search_rec);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  listarArquivosDir('c:\', ListBox1.Items);
end;

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


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um arquivo em Delphi usando a função DeleteFile()

Quantidade de visualizações: 31689 vezes
Em algumas situações nossas aplicações precisam excluir arquivos. Para isso o Delphi nos fornece a função DeleteFile(), presente na unit SysUtils. Esta função recebe o caminho e nome do arquivo a ser excluído e retorna true se a exclusão foi feita com sucesso e false em caso contrário.

Veja um trecho de código no qual excluímos um arquivo chamado "dados.txt":

----------------------------------------------------------------------
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
  arquivo: string;
begin
  // diretorio e nome do arquivo
  arquivo := 'C:\arquivo de codigos\dados.txt';

  // vamos remover o arquivo
  if DeleteFile(arquivo) then
    ShowMessage('O arquivo foi excluído com sucesso')
  else
    ShowMessage('Não foi possível excluir o arquivo');
end;

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


Vamos testar seus conhecimentos em JavaScript

Analise o seguinte código JavaScript

var a = (new Array(10)).toString();

Qual o valor da variável a após a execução desta linha de código?

A) a string "10".

B) um array de 10 strings vazias.

C) a string ",,,,,,,,,".

D) A instrução provoca um erro de execução.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Locação da obra

Locar ou marcar a obra é uma das etapas de maior importância da construção. Sobre essa etapa, assinale a alternativa que apresenta a afirmação verdadeira.

A) A demarcação dos pontos que definem o edifício no terreno é feita a partir de um referencial previamente definido, considerando-se três coordenadas, sendo duas planimétricas e uma altimétrica.

B) Para a locação da obra, são necessários somente os projetos de estrutura e de arquitetura.

C) A locação da obra deve ser realizada somente após a movimentação de terra e a execução das fundações.

D) As tábuas que compõem os quadros de madeira (gabaritos) só precisam ser niveladas nos casos em que o terreno possui desnível superior a um metro.

E) O gabarito somente poderá ser desmontado após a execução da totalidade da estrutura de concreto.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

(CEBRASPE - 2024 - ITAIPU - Técnico em Hidrologia) A tabela a seguir apresenta os dados de precipitação mensal, com as respectivas quantidades de ocorrência, coletados em um posto de meteorologia, ao longo de determinado período.



A partir dos dados da tabela, é correto afirmar que a média ponderada da precipitação, no período de coleta, foi:

A) inferior a 1.000 mm.

B) superior a 1.000 mm e inferior a 1.500 mm.

C) superior a 1.500 mm e inferior a 2.000 mm.

D) superior a 2.000 mm e inferior a 2.500 mm.

E) superior a 2.500 mm.
Verificar Resposta Estudar Cards Todas as Questões

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

Responsabilidade civil dos prepostos e preponentes

Com relação as definições do preposto, assinale a alternativa correta.

A) O preposto pode negociar por conta própria ou de terceiro, e participar indiretamente de operação idêntica a que lhe foi cometida.

B) O preposto não pode, sem autorização escrita, fazer-se substituir no desempenho da preposição, sob pena de responder pessoalmente pelos atos do substituto e pelas obrigações por ele contraídas.

C) Considera-se inválida a entrega de papéis, bens ou valores ao preposto, encarregado pelo preponente, se este os recebeu sem protesto.

D) As limitações contidas na outorga de poderes podem ser opostas a terceiros, dependem do arquivamento e averbação do instrumento no Registro Público de Empresas Mercantis.

E) No exercício de suas funções, os prepostos são pessoalmente responsáveis, perante terceiros, pelos atos culposos e atos dolosos.
Verificar Resposta Estudar Cards Todas as Questões

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

O código de ética profissional: Concorrência

A estrutura de mercado denominada "livre concorrência" tem como principal característica a competição empresarial de maneira correta, transparente e honesta. Nesse ambiente, é necessária a regulamentação da economia por parte do Estado, pois isso gera benefícios aos consumidores. Marque a alternativa que apresenta os benefícios decorrentes da regulamentação.

A) A coletividade passa a contar com mais opções de produtos importados, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável.

B) A coletividade passa a contar com mais opções de produtos, preços e menos rigor na qualidade, além de oferecer às empresas um ambiente econômico saudável.

C) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico monopolista.

D) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável.

E) Os Estados menos desenvolvidos passam a contar com isenção de impostos, mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável.
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á 53 usuários muito felizes estudando em nosso site.