Você está aqui: 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: 33341 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.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como tornar o TClientDataSet do Delphi somente leitura usando a propriedade ReadOnly

Quantidade de visualizações: 11601 vezes
Em algumas situações gostaríamos que um TClientDataSet fosse somente leitura, ou seja, não queremos permitir inserção, atualização ou exclusão dos dados do dataset. Para isso podemos usar a propriedade ReadOnly. Se seu valor for True, os dados do TClientDataSet serão apenas para leitura. Se o valor for False, os dados podem ser modificados e/ou novos dados podem ser inseridos no dataset. O valor padrão é False.

Em tempo de design a propriedade ReadOnly do TClientDataSet pode ser ajustada selecionando-se o componente no formulário e acessando o Object Inspector. Em tempo de execução esta propriedade pode ser ajustada por meio do seguinte trecho de código:

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

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos tornar o TClientDataSet somente leitura
  ClientDataSet1.ReadOnly := True;
end;

Se necessário, podemos obter o valor desta propriedade em tempo de execução da seguinte forma:

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

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos verificar se o TClientDataSet é somente leitura
  if ClientDataSet1.ReadOnly then
    ShowMessage('O ClientDataSet é somente leitura')
  else
    ShowMessage('O ClientDataSet NÃO é somente leitura')
end;

Ao executarmos este código e clicarmos no botão teremos uma mensagem parecida com:

"O ClientDataSet NÃO é somente leitura".

É importante observar que se tentarmos efetuar alguma operação que modifica o conteúdo de um TClientDataSet somente leitura nós teremos uma exceção do tipo:

Project Project2.exe raised exception class EDatabaseError with message 'ClientDataSet1': Cannot modify a read-only dataset'.

Quando ajustamos o valor da propriedade ReadOnly para True, automaticamente a propriedade CanModify do dataset é ajustada para False.

Importante: Mesmo que o valor da propriedade ReadOnly seja False, os usuários ainda podem ser impedidos de modificar os dados de um client dataset se este obtém seus dados a partir de um provider (por exemplo: TDataSetProvider). A propriedade Options do provider pode limitar se os dados podem ser editados e, se puderem, os tipos de alterações permitidos.

Esta dica foi escrita e testada no Delphi 2009.


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

Como obter o índice do item selecionado em uma ListBox do Delphi usando a propriedade ItemIndex da classe TListBox

Quantidade de visualizações: 14912 vezes
Muitas vezes precisamos saber o índice do item atualmente selecionado em uma ListBox. Para isso podemos obter o valor da propriedade ItemIndex. Esta propriedade retorna um valor inteiro correspondente ao índice do item selecionado. O primeiro item da lista possui o índice 0. Se nenhum item estiver selecionado, ItemIndex retorna -1. Veja o exemplo:

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

procedure TForm1.Button2Click(Sender: TObject);
var
  indice: Integer;
begin
  // vamos obter o índice do item selecionado na ListBox
  indice := ListBox1.ItemIndex;

  // mostra o resultado
  ShowMessage('O índice do item selecionado é: '
    + IntToStr(indice));
end;

Note que esta propriedade não se aplica às ListBoxes de seleção múltipla.

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


Delphi ::: VCL - Visual Component Library ::: TEdit

Como obter a quantidade de caracteres em um TEdit do Delphi usando a função GetTextLen()

Quantidade de visualizações: 12492 vezes
Em algumas ocasiões nós precisamos descobrir a quantidade de caracteres contidos em uma caixa de texto do tipo TEdit. Para isso podemos usar o método GetTextLen(), definido originalmente na classe TControl. Esta função retorna um valor inteiro contendo o tamanho do texto da caixa de texto.

Veja um exemplo do uso do método GetTextLen() no trecho de código a seguir:

----------------------------------------------------------------------
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
  tamanho: Integer;
begin
  // vamos obter a quantidade de caracteres no TEdit
  tamanho := Edit1.GetTextLen();

  // vamos mostrar o resultado
  ShowMessage('O Edit contém ' + IntToStr(tamanho) + ' caracteres.');
end;

Ao executar este exemplo você terá um resultado parecido com:

O Edit contém 5 caracteres.


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



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