Fórum Travar form no evento on click #354862
05/03/2008
0
Eu gostaria que no momento do clique em um dos botões não fosse permitido mais nada até que eu concluisse a rotina daquele botão.
No evento onclick do botão coloco nome_formulario.enabled:=false;
Mesmo assim se eu clicar rápido em outro botão ele continua habilitado.
Existe alguma maneira de desabilitar toda form no momento do click ?
Obrigado pela atenção
Clistenes
Curtir tópico
+ 0Posts
05/03/2008
Onjahyr
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Enabled := False;
Application.ProcessMessages;
Try
{comandos desejados}
Finally
Form1.Enabled := True;
end;
end;
Se você passar logo o prieiro comando não tem como poder clicar em outra coisa e funcionar, a não ser que esteja fazendo algum processo antes de executar o comando para desabilitar.... Deixe para colocar os outros processos abaixo do [b:149c118f02]Try[/b:149c118f02]...
Blz.
Gostei + 0
06/03/2008
Clistenes
O que eu gostaria é que no momento que estivesse desabilitado não fosse aceito nada.
procedure TForm2.BtConfirmarClick(Sender: TObject);
begin
Form2.Enabled := False;
Application.ProcessMessages;
Try
form2.Caption:=´desabilitado´; sleep(2000);
Finally
Form2.Enabled := True;
form2.Caption:=´´;
end;
end;
procedure TForm2.BtCancelarClick(Sender: TObject);
begin
SHOWMESSAGE(´BOTÃO CLICADO´);
end;
Gostei + 0
06/03/2008
Onjahyr
private
Fechado : Boolean;
procedure...
begin
Fechado := True;
// o seu código acima
// No Finnaly você acrescenta:
Fechado := False;
end;
No evento clique do outro botão (B):
procedure ...
begin
if Fechado then
Exit;
//Resto do código
end;
Não tô com o Delphi aqui para verificar o pq do Form1.Enable ainda funcionar, então usa isso temporário que não vai fazer nada e, de fato, vai funcionar...
Deixe uma mensagem se funcionar para saber que foi resolvido!
Blz
Gostei + 0
06/03/2008
Clistenes
Se você criar um Tedit e dois botões e clicar em um botão no evento onclick efetuar o procedimento abaixo e durante esses nove segundos digitar algo sobre a edit, irá verificar que ao fim dos nove segundos a edit terá o conteúdo desejado.
O que eu preciso é que durante esses nove segundo tudo que seja digitado ou clicado sobre a form não seja considerado ao final dos 9 segundos.
Form2.Enabled := False;
Application.ProcessMessages;
Try
form2.Caption:=´desabilitado´;
sleep(9000);
Finally
Form2.Enabled := True;
form2.Caption:=´´;
end;
end;
procedure TForm2.BClick(Sender: TObject);
begin
SHOWMESSAGE(´BOTÃO CLICADO´);
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)