Você está aqui: Delphi ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial Delphi para iniciantes: Como usar o laço while do DelphiQuantidade de visualizações: 26131 vezes |
O laço while do Delphi é usado quando queremos que um bloco de instruções seja executado enquanto uma condição for satisfeita. Assim, todas as iterações do laço serão resultados de um teste condicional. Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button3Click(Sender: TObject); var i: Integer; // variável de controle begin // este laço contará de 0 até 10 i := 0; while i <= 10 do begin ShowMessage(IntToStr(i)); // a mensagem será exibida 10 vezes Inc(i); // vamos incrementar a variável de controle end; end; Aqui nós temos uma variável i que tem seu valor inicial definido como 0. Ao entrarmos no laço while nós verificamos se o valor desta variável é menor ou igual a 10. Se este teste for verdadeiro o laço é executado pela primeira vez. Dentro do laço nós aumentamos o valor da variável de controle em 1. Isso é feito de forma a evitar um laço infinito. O laço então prossegue para a próxima iteração, que ocorre somente após a verificação do resultado do teste condicional. Isso nos mostra que um laço while pode nunca ser executado (casos nos quais o teste de continuidade do laço falha já na primeira iteração). Veja agora um exemplo no qual usamos um laço while para contar de 10 até 0: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button3Click(Sender: TObject); var i: Integer; // variável de controle begin // este laço contará de 10 até 0 i := 10; while i >= 0 do begin ShowMessage(IntToStr(i)); // a mensagem será exibida 10 vezes Dec(i); // vamos decrementar a variável de controle end; end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Link para compartilhar na Internet ou com seus amigos: |
Delphi ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra em DelphiQuantidade de visualizações: 1221 vezes |
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Delphi completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // função que recebe dois pontos na terra e retorna a distância // entre eles em quilômetros function CalcularDistancia(lat1: double; lat2: double; lon1: double; lon2: double): double; var raio_terra, dlon, dlat, a, c: double; begin raio_terra := 6378.137; // raio da terra em quilômetros // o primeiro passo é converter as latitudes e longitudes // para radianos // não esqueça de adicionar a unit Math lon1 := DegToRad(lon1); lon2 := DegToRad(lon2); lat1 := DegToRad(lat1); lat2 := DegToRad(lat2); // agora aplicamos a Fórmula de Haversine dlon := lon2 - lon1; dlat := lat2 - lat1; a := Power(Sin(dlat / 2), 2) + Cos(lat1) * Cos(lat2) * Power(Sin(dlon / 2),2); c := 2 * ArcSin(Sqrt(a)); // e retornamos a distância Result := (c * raio_terra); end; procedure TForm5.Button1Click(Sender: TObject); var lat1, lon1, lat2, lon2, distancia: double; begin // obtém as coordenadas vindas dos campos de texto lat1 := StrToFloat(txtPrimeiraLatitude.Text); lon1 := StrToFloat(txtPrimeiraLongitude.Text); lat2 := StrToFloat(txtSegundaLatitude.Text); lon2 := StrToFloat(txtSegundaLongitude.Text); // vamos calcular a distância entre os dois pontos em Kms distancia := CalcularDistancia(lat1, lat2, lon1, lon2); // e mostramos o resultado txtDistancia.Text := FormatFloat('#.0', distancia) + ' kms'; end; Ao executar este código Delphi nós teremos o seguinte resultado: Informe a primeira latitude: -16,674551 Informe a primeira longitude: -49,303598 Informe a segunda latitude: -15,579321 Informe a segunda longitude: -56,10009 A distância entre os dois pontos é: 736,9 kms Aqui as informações sobre as latitudes e longitudes vieram de campos de texto TEdit, e o código foi disparado a partir do clique de um botão TButton. Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. |
Delphi ::: VCL - Visual Component Library ::: TComboBox |
Como retornar o índice do item selecionado em um ComboBox do Delphi usando a propriedade ItemIndexQuantidade de visualizações: 19073 vezes |
Em algumas situações precisamos saber o índice do item selecionado em um ComboBox. Isso pode ser feito por meio da propriedade ItemIndex da classe TComboBox. Esta propriedade retorna um valor inteiro representando um índice começando em 0, ou seja, o índice do primeiro item é 0. Se nenhum item estiver selecionado, o valor -1 será retornado. Veja o código: ---------------------------------------------------------------------- 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 indice: Integer; begin // vamos obter o índice do item selecionado no ComboBox indice := ComboBox1.ItemIndex; // mostra o resultado ShowMessage('O índice do item selecionado é: ' + IntToStr(indice)); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma substring está contida no final de uma string usando a função AnsiEndsStr() do DelphiQuantidade de visualizações: 11292 vezes |
Em algumas situações precisamos verificar se uma substring está contida no final de uma string, ou seja, se a string termina com um determinado sufixo. Em Delphi isso pode ser feito com o auxílio da função AnsiEndsStr(). Esta função requer a substring a ser pesquisada e a string alvo da pesquisa. O retorno será true se a substring estiver contida no final da string. Do contrário o retorno será false. 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 frase: string; begin frase := 'Gosto muito de Delphi e Java'; // vamos verificar se a string termina com "Java" if AnsiEndsStr('Java', frase) then ShowMessage('A frase termina com a substring indicada') else ShowMessage('A frase NÃO termina com a substring indicada') end; Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Processos e técnicas construtivas de instalações elétricas e hidráulicas As instalações prediais de água fria têm a função de distribuir água potável em temperatura ambiente, enquanto as instalações prediais de água quente distribuem água aquecida, sempre observando a segurança dos usuários. Analise as afirmativas a seguir, referentes às instalações prediais de água fria e água quente. I. As colunas de distribuição têm a função de conduzir a água a partir dos barriletes com destino aos ramais, tanto na instalação de água fria quanto na instalação de água quente. II. Os aquecedores de acumulação se caracterizam pela capacidade de armazenamento de água, que é aquecida em um reservatório componente do equipamento. III. O sistema de aquecimento individual, em uma edificação, consiste naquele que alimenta todos os pontos de utilização de um único apartamento. IV. As bitolas das tubulações empregadas em uma rede de distribuição de água devem diminuir a partir do barrilete em direção ao sub-ramal. Assinale a alternativa que apresenta somente a(s) afirmativa(s) correta(s). A) Apenas a afirmativa I está correta. B) Apenas a afirmativa III está correta. C) Apenas as afirmativas II e III estão corretas. D) Apenas as afirmativas I, II e IV estão corretas. E) As afirmativas I, II, III e IV estão corretas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética, Legislação e Entidades que regulamentam a profissão Você estudou sobre a aplicação do método de solução de problemas de engenharia para fins de análise e solução de dilemas éticos na profissão. Com base nessa ferramenta, as alternativas abaixo apresentam etapas de análise e solução de problemas éticos, exceto: A) Definição do problema e determinação dos objetivos. B) Identificação de soluções alternativas e de restrições. C) Escolha de uma solução e testes de potenciais impactos da solução. D) Negociação e aprovação da solução pelo ente envolvido, a fim de evitar atritos. E) Documentação e comunicação da solução. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(UFG 2010) As bacias hidrográficas são unidades físicas, formadas por uma porção de terra, delimitadas pelas partes mais altas do relevo, drenadas por um curso d'água principal e seus afluentes. Os processos ambientais, decorrentes da ação da precipitação, responsáveis pela modelagem do relevo na bacia hidrográfica são: A) evaporação, condensação e infiltração. B) vulcanismo, falhamento e fraturamento. C) dobramento, intemperismo químico e soerguimento. D) escorregamento, erosão e assoreamento. E) lixiviação, intemperismo físico e laterização. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?soma = 0 for i in range(0, 10): soma = soma + 3 if i > 4: break print("A soma é: {0}".format(soma)) A) A soma é: 9 B) A soma é: 19 C) A soma é: 24 D) A soma é: 18 E) A soma é: 28 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 A Política Nacional das Relações de Consumo tem por objetivo o atendimento das necessidades dos consumidores, o respeito à sua dignidade, saúde e segurança, a proteção de seus interesses econômicos, a melhoria da sua qualidade de vida, bem como a transparência e harmonia das relações de consumo, atendido, dentre outros, o princípio da ação governamental, que se manifesta: A) Pela garantia dos produtos e serviços com padrões adequados de qualidade, segurança, durabilidade e desempenho. B) Pela presença do Estado no mercado estrangeiro. C) Pelo monopólio estrangeiro no mercado nacional. D) Pelo incentivos à criação e desenvolvimento de associações lucrativas. E) Pela iniciativa indireta. 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 |
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 |