Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Duvida com "While"


K!ko

Pergunta

Olá pessoal!

Bom... já faz um tempinho que não posto... mas vamos lá

Seguinte... estou com uma duvidazinha com o uso de "While"... Eu gostaria de saber se enquanto o while é executado, existe a possibilidade de usar uma tecla no action list, por exemplo, para causar uma pausa na execução e, após a pausa, fazer com que o while continue com a mesma tecla ou outra qualquer...

É possível realizar essa operação?

Se for possível, como posso fazer?

Agradecido desde já, =D

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Eu gostaria de saber se enquanto o while é executado, existe a possibilidade de usar uma tecla no action list, por exemplo, para causar uma pausa na execução e, após a pausa, fazer com que o while continue com a mesma tecla ou outra qualquer...

Exemplo:

var

  S: string;
begin
  while True do
  begin
    ReadLn(S);
    try
      if S = '' then Break;
      WriteLn(S);
    finally
    { do something for all cases }
    { faça algo para todos os casos }
    end;
  end;
end;

Obs: veja no help do delphi os comandos break e continue;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
para causar uma pausa na execução e, após a pausa, fazer com que o while continue

Você poderia explicar melhor o que vecê quis dizer?

exatamente o que voce perguntou .... voce vai usar o comando break para pausar o while e o comando continue para continuar

outro exemplo

for I := 1 to 10 do
    if I = 9 do
    begin
      while x < 50 do
      begin
        Inc(x)
        if X = 45 then
          Break; // sai do while
      end;
      Break; // sai do for
    end;
outro
Procedure Tform1.Button1Click(Sender: TObject);
var
S: String;
begin
   While true Do
   begin

      S := Edit1.text;

      If S = ' ' Then Break; { Interrompe o loop }

      Label1.Caption := S;

   end;
end;



Procedure Tform1.Button1Click(Sender: TObject);
var
S: String;
begin
    While true Do
    begin

        S := Edit1.text;

        If S = ' ' Then Continue; { Voltará para o próximo loop }

        Label1.Caption := S; 

    end;
end;

ficou mais claro ?

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Se ainda não entender

Bota uma variável bollean global

Depois do begin do while bota um if var boll then

e desse begin um app.processmessages

Assim ele processa tudo enquanto ta no loop

Quando fazer esse negocio que você disse ele seta essa variável para False,

lembrasse de setala como true antes do loop

Link para o comentário
Compartilhar em outros sites

  • 0
... Eu gostaria de saber se enquanto o while é executado, existe a possibilidade de usar uma tecla no action list, por exemplo, para causar uma pausa na execução e, após a pausa, fazer com que o while continue com a mesma tecla ou outra qualquer...

É possível realizar essa operação?

K!ko, é possível sim.

A implementação pode variar um pouco de acordo com o que você fará no seu programa, mas para que qualquer evento do Windows (nisto incluí-se, mensagens de: teclado, mouse, ...) seja processado, você precisa viabilizar isto dentro de qualquer loop demorado (ou "infinito"), fazendo a chamada ao método ProcessMessages do seu objeto Application (como mencionou o colega Rento).

Se for possível, como posso fazer?
segue anexo um exemplo tosco, mas acho que exemplifica o básico (porque é muito simples, mesmo). Está comentado, e para não fazer uso de uma variável de controle global, optei pelo uso da propriedade Tag do TAction utilizado para executar/pausar o loop.

Dê uma olhada, e poste novas dúvidas.

Abraços

LoopWhile.zip

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, eu saquei agora oque você quis dizer... esse lance de Break e Continue eu tinha pensado em usar... oque eu não consegui é fazer isso utilizando uma tecla para executar a rotina dentro do while.

Micheuse Rento... do jeito que vocês disseram deu certo.... coloquei application.ProcessMessages no while e uma mensagem em um actionlist que é executada ao apertar a tecla "P", aconteceu exatamente o que eu queria... a mensagem é mostrada e o while é pausado... após dar o "OK" da mensagem o while continua...

Vlws aew a todos... :D

abraço

Tópico resolvido

Editado por K!ko
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...