Curso de Delphi - Aula 04
By Tiago Assis


Cronograma Aula 04
- Laços de repetições (For / While / With)
- Exercícios de fixação

Laços de repetição são muito importantes para qualquer trabalho que você for realizar. São muito úteis em pesquisas ou determinadas funções que utilize determinados recursos como contadores, trabalhos com banco de dados, etc.

Vamos ao primeiro exemplo prático:


Laço de Repetição For

Muito utilizado com variáveis integer, simbolizando uma espécie de contador, seja ele de registros ou outra forma. Nesse exemplo prático, vamos supor que temos um arquivo texto (.txt) com uma listagem ampla de nomes e utilizaremos esse arquivo para verificar se o nome que digitarmos existe ou não.

* Crie uma pasta chamada Aula04
* Abra o bloco de notas e digite 20 nomes de pessoas (todos diferentes)
* Salve o arquivo de texto dentro da pasta Aula04 com o nome de Nomes.txt
* Abra o Delphi e crie uma nova aplicação
* Adicione os seguintes componentes:
---- 1 Memo (paleta standard)
---- 1 Label (paleta standard)
---- 1 Edit (paleta standard)
---- 1 Button (paleta standard)

Salve essa aplicação dentro da pasta Aula04

No evento OnShow do Form1 utilize este código:

Código:
procedure TForm1.FormShow(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.LoadFromFile('C:\Documents and Settings\Tiago\Desktop\MUS\Nomes.txt');
end;
Note que eu digitei uma localização completa para buscar o arquivo, mas você pode definir o arquivo que está direto na sua pasta com ".\" que significa a partir de onde está seu programa criado no Delphi.

Código:
procedure TForm1.FormShow(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.LoadFromFile('.\Nomes.txt');
end;
Esse comando vai adicionar todo o conteúdo do arquivo Nomes.txt dentro do Memo.


Logo após, no evento OnClick do Button1 declare o seguinte:

Código:
procedure TForm1.Button1Click(Sender: TObject);
var // Iniciar criação de variáveis
I: Integer; // Variável Integer
begin
  {O I é definido como 0 e vai checar todo o conteúdo do memo até a última linha (-1)}
  for I:=0 to Memo1.Lines.Count-1 do begin
    if Edit1.Text=Memo1.Lines[I] then begin  // Se o conteúdo do Edit1 for igual ao texto da linha selecionada no for
      ShowMessage('Usuário '+Edit1.Text+' localizado com sucesso!');
    end;
  end;
end;
No exemplo do código acima, o For vai navegar em todo o Memo1, suponhamos que o nosso cursor de navegação seja a variável I (que representa a linha selecionada). Caso o conteúdo do edit1 for igual ao conteúdo da linha selecionada no Memo1 irá aparecer a mensagem de usuário localizado com sucesso!



Laço de repetição While

O while já é um laço de repetição que serve mais como loop mesmo. Ele é mais utilizado como uma forma de persistência. Por exemplo, apagando todos os registros da uma tabela, enquanto a tabela possuir registro ele vai apagando até não existir mais nenhum. Utilizaremos o projeto que já estamos trabalhando para um exemplo do while.

Adicione no projeto os seguinte componente: 1 Button (paleta standard)

No evento OnClick desse button, que é o button2 nesse caso, declare o seguinte:

Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
  while Memo1.Text<>'' do begin // Enquanto o Memo1 tiver conteúdo dentro dele
    Memo1.Lines.Delete(0); // Deleta a primeira linha do memo
  end;
end;
No caso acima, estamos executando uma função para limpar o campo Memo. Enquanto houver texto no memo ele vai deletando sempre a primeira linha, até não haver mais nenhum conteúdo.


Ai está o exemplo clássico das 2 funções


Exercícios de fixação:

1 - Refaça este exercício novamente, sem consultar os exemplos.