Você está aqui: Delphi ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como usar a função FormatFloat() para formatar valores de ponto-flutuante em DelphiQuantidade de visualizações: 64926 vezes |
A função FormatFloat() é muito útil quando queremos formatar valores de ponto-flutuante (valores que possuem a parte fracionária) em Delphi. Esta função recebe um padrão de formatação e o valor a ser formatado e retorna uma string. Veja um exemplo no qual formatamos o valor de PI com 2 casas decimais:---------------------------------------------------------------------- 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 resultado: string; begin // vamos formatar o valor de PI com 2 casas decimais resultado := FormatFloat('#.00', PI); // vamos exibir o resultado ShowMessage(resultado); end; O resultado será exibido como 3,14. Note que aqui nós informamos o ponto como separador decimal. No entanto, o Delphi busca o separador decimal na variável global DecimalSeparator, usada para facilitar a internacionalização, visto que este valor é obtido a partir das configurações regionais do Windows. Para tirar o máximo proveito da função FormatFloat(), é necessário conhecer os especificadores de formato: 0 - Marcador de dígito. Se o valor a ser formatado tiver um dígito na posição ocupada por "0" na string de formatação, então este dígito é copiado para a string resultante. Do contrário, um "0" é guardado nesta posição na string resultante. Veja, por exemplo, como podemos formatar um valor sempre com 5 posições antes da vírgula: ---------------------------------------------------------------------- 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: double; resultado: string; begin valor := 4.50; // vamos formatar o valor com 5 posições antes da vírgula resultado := FormatFloat('00000.00', valor); // vamos exibir o resultado ShowMessage(resultado); end; # - Marcador de dígito. Se o valor a ser formatado tiver um dígito na posição ocupada por "0" na string de formatação, então este dígito é copiado para a string resultante. Do contrário, nada é guardado nesta posição na string resultante. . - O primeiro caractere "." encontrado na string de formatação determina a posição do separador decimal na string resultante. Quaisquer caracteres "." encontrados após o primeiro "." serão ignorados. O caractere do separador decimal é determinado pela variável global DecimalSeparator ou seu equivalente TFormatSettings. , - Separador de milhares. Se a string de formatação tiver um ou mais caracteres ".", o resultado terá separadores de milhares entre cada grupo de três dígitos à esquerda do ponto decimal. A posição e quantidade de "." não afeta o resultado, exceto para informar que os separadores de milhares são necessários. O caractere do separador decimal é determinado pela variável global ThousandSeparator ou seu equivalente TFormatSettings. Veja um exemplo no qual exibimos o valor 43765,15 com o separador de milhar: ---------------------------------------------------------------------- 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: double; resultado: string; begin valor := 43765.15; // vamos formatar o valor usando o separador de milhares resultado := FormatFloat(',.00', valor); // vamos exibir o resultado ShowMessage(resultado); end; E+ - Notação científica. Se qualquer uma das strings 'E+', 'E-', 'e+' ou 'e-' estiver contida na string de formatação, o valor será formatado usando notação científica. Um grupo de até quatro caracteres "0" poderá ser inserido após 'E+', 'E-', 'e+', ou 'e-' para determinar o número máximo de dígitos no expoente. O 'E+' e 'e+' provocará um sinal de positivo para a formatação de números positivos e um sinal de negativo para a formatação de números negativos. O 'E-' e 'e-' provocará um sinal negativo apenas para expoentes negativos. 'xx'/"xx" - Caracteres em asplas simples ou duplas são exibidos sem formatação. ; - Usado para separar seções para números positivos, negativos e zeros na string de formatação. Usamos isso quando queremos que valores positivos, negativos ou zerados sejam formatados de forma diferente. Veja um último exemplo, desta vez formatando um valor em moeda brasileira (durante a autoria desta dica, a moeda usada é reais): ---------------------------------------------------------------------- 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: double; resultado: string; begin valor := 43765.15; // vamos formatar o valor usando o separador de milhares // e a moeda brasileira: reais resultado := FormatFloat('"R$ ",.00', valor); // vamos exibir o resultado ShowMessage(resultado); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Link para compartilhar na Internet ou com seus amigos: |
Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Delphi para iniciantes - Como escrever uma função que retorna uma matriz de IntegerQuantidade de visualizações: 13534 vezes |
Em algumas situações precisamos retornar uma matriz a partir de uma função. Nesta dica eu mostro como isso pode ser feito. O primeiro passo é declarar um novo tipo. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- type // vamos declarar um novo tipo TMatrizInteiros = array of Integer; Aqui o tipo TMatrizInteiros representa uma matriz de inteiros. Veja a unit completa para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type // vamos declarar um novo tipo TMatrizInteiros = array of Integer; var Form1: TForm1; implementation {$R *.dfm} // função usada para construir e retornar uma // matriz de Integer function obterValores: TMatrizInteiros; var tempArray: TMatrizInteiros; i: integer; begin // vamos definir o tamanho da matriz SetLength(tempArray, 10); // vamos inicializar a matriz com os números pares de 0 até 18 // note que em matrizes abertas o índice inicial é sempre 0 for i := Low(tempArray) to High(tempArray) do begin tempArray[i] := i * 2; end; Result := tempArray; // vamos retornar a matriz end; procedure TForm1.Button1Click(Sender: TObject); var valores: TMatrizInteiros; // uma matriz do tipo TMatrizInteiros i: Integer; begin valores := obterValores(); // que já temos a matriz, vamos exibir os valores de // seus elementos for i := 0 to High(valores) do begin Memo1.Lines.Add(IntToStr(valores[i])); end; end; end. Note que a função retornará uma matriz aberta (open array). Desta forma, seu índice inicial será sempre 0. |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como retornar a data e hora atual em Delphi usando as funções Now() e DateTimeToStr()Quantidade de visualizações: 23386 vezes |
Em algumas situações precisamos obter a data e hora atual do sistema. Em Delphi isso pode ser feito com o auxílio da função Now(), presente na unit SysUtils. Este função não requer nenhum argumento e retorna a data e hora atual como um TDateTime. 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 data: TDateTime; begin // vamos obter a data e hora atual data := Now(); // vamos exibir o resultado ShowMessage(DateTimeToStr(data)); end; Ao executar este código Delphi nós teremos o seguinte resultado: 28/09/2018 15:14:15 Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como usar o controle TListBox em suas aplicações DelphiQuantidade de visualizações: 13808 vezes |
Objetos da classe TListBox, da unit StdCtrls, são controles do tipo lista de seleção. Este componente exibe uma lista com barras de rolagem contendo items que podem ser selecionados, adicionados ou excluídos. A classe TListBox é um wrapper (invólucro) para o controle LISTBOX da plataforma Windows. Em controles do tipo ListBox o usuário pode selecionar apenas um ítem ou vários itens de uma vez. Em Delphi, a classe TListBox implementa o comportamento genérico definido em TCustomListBox. É esta classe que devemos usar para derivar nossa própria ListBox caso o controle TListBox não satisfaça as nossas necessidades. É claro que podemos partir de qualquer classe que herde de TCustomListBox. A forma mais comum de adicionarmos um controle TListBox em nossos formulários é selecionando este componente na aba Standard e arrastando-o para a posição desejada na janela. Em seguida podemos adicionar itens na lista acessando sua propriedade Items, que são do tipo TStrings, ou seja, uma lista de strings. Ao clicarmos na propriedade Items no Object Inspector, um String List Editor será exibido. Basta inserir algumas strings nesta caixa de texto, pressionar o botão OK e verificar como o controle já exibe os itens que acabamos de inserir. Em tempo de execução, itens podem ser adicionados à uma TListBox usando códigos parecidos com: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); begin // vamos inserir um novo item na TListBox ListBox1.Items.Add('Osmar J. Silva'); end; Se precisarmos obter o texto do ítem selecionado em uma TListBox, podemos usar: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); begin // vamos obter o texto do item selecionado na TListBox ShowMessage(ListBox1.Items[ListBox1.ItemIndex]); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |