Cita:
Empezado por vpepen
Hola Marcos,
Sucede lo siguiente, yo no quiero que el usuario pueda hacer clic sobre el botón mientras esté ejecutándose el proceso, pero si quiero, que cuando termine le permita ejecutarlo de nuevo, es decir, necesito regresarle su estado anterior.
Las dos opciones:
Button1.Enabled := False; // Deshabilitar el botón o
Button1.OnClick := nil; // Quitar el manejador de evento
son buenas, pero no resuelven el problemita, ya que al usuario dar clic sobre el botón desactivado, cuando termina el proceso vuelve e inicia, es decir, el botón me está funcionando aunque esté deshabilitado.
Espero haberme explicado bien,
Víctor.-
|
Hasta donde se y he usado, un botón con su propiedad Enabled := False no se puede utilizar.
Pero puedes intentar esto:
Código Delphi
[-]
type
Form1 = class(TForm)
private
FProcessDone: Boolean;
end;
implementation
constructor Form1.Create(AOwner: TComponent);
begin
FProcessDone := False
end;
procedure Button1.OnClick(Sender: TObject);
var
i: Integer;
begin
if not FProcessDone then
begin
Button1.Enabled := False;
For i := 1 to 5000 do
begin
Label1.Caption := IntToStr(i);
Label1.Repaint;
end;
Button1.Enabled := True;
FProcessDone := True
end
end;
Con esto lograrás que el proceso solo se ejecute la primera vez que des click en el botón...
Espero que te sirva...
Saludos...