Ola clipatequeiros! Suave na nave?Neste artigo vamos apresentar a voces tres recursos presentes no Delphi que podem ser uteis em algum momento nos projetos de voces. Vem com a gente que voces vao se dar mal kkkkk zoeira gente! Cola com a gente que voces vao brilhar. Let's go!!!Para prosseguirmos, crie um novo projeto e coloque nele tres "LabeledEdit" e tres "Button". Segue a propriedade "Name" de cada um:TLabeledEdit: edtNumero, edtInfoBox, edtInfoQuery;TButton: btnConverter, btnInputBox, btnInputQuery;No final teremos algo como isso:Vamos comecar falando sobre a funcao "TryStrToInt", que por sinal, muita gente nao conhece, e e bem util.TryStrToIntEsta funcao e utilizada para tentar converter um valor "String" em "Inteiro". E necessario fazermos este tipo de tratamento no sistema quando em algum momento precisamos ler um valor inteiro digitado em um "Edit", por exemplo, a idade de um cliente, geralmente, tratamos esta informacao como sendo inteira, porem, se o usuario digitar uma letra, vai gerar aquele erro chato "is not a valid integer value.", atire a pedra quem nunca se deparou com este miseravel kkk.Porque isso acontece? Porque o "Edit" contem valor "String" e se atribuirmos o valor dele para uma variavel "Inteiro" vai gerar este erro, caso a funcao "StrToInt" nao conseguir converter o valor digitado. Obviamente que temos a propriedade "NumberOnly" do "Edit" que quando ativada (igual a True) nem permite o usuario digitar letra, isso evita programacao. Mas, para este exemplo ficar claro, suponhamos que nao exista esta propriedade e voce precisa garantir a conversao do dado "String" digitado para "Inteiro". Se usarmos a funcao "StrToInt", funciona perfeitamente caso o valor digitado seja possivel converter para "Inteiro", caso contrario vai gerar aquele erro lindo que citamos acima. Para resolver essa questao, temos que fazer um tratamento via programacao. E para este tratamento, a maioria usa o "Try...Except", sendo assim, se nao for possivel converter o valor, vai cair no bloco de excecao onde terao as tratativas, seja mandar uma mensagem de erro gerado pela classe de excecao, ou alterar para um valor padrao, ou coisa do tipo. Acontece, que nao e interessante criar um bloco de tratamento "Try...Except" para uma informacao tao simples como esta. Seria uma alocacao de recursos desnecessaria. Legal, e ai que entra em cena a nossa querida funcao "TryStrToInt". O que ela faz? Vamos la.Esta funcao pede dois parametros, onde o primeiro e o valor a ser convertido, e o segundo, a variavel que vai receber o valor de saida, que e o valor convertido. Se tudo isso ocorrer bem, a funcao retornara "True", ou seja, o valor foi convertido com sucesso e ja esta na variavel de saida. Caso nao seja possivel converter o valor, a funcao retornara "False", entao, apenas geramos uma mensagem simples ao usuario dizendo por exemplo que o valor digitado nao e valido.Legal, bacana. Nao usamos o bloco "Try...Except" que faria uma consulta completa na classe de excecao, com isso, menos recursos alocado, mais praticidade, codigo limpo.Claro que, se voce deseja tomar outras decisoes, com mais personalizacoes, entao e melhor que se use o "Try...Except" mesmo.Muito bem minha gente. Da mesma forma,