Ver Mensaje Individual
  #7  
Antiguo 08-10-2004
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
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)
    // Declaraciones aquí
  private
    FProcessDone: Boolean;
    // Más declaraciones aquí
  end;

implementation

constructor Form1.Create(AOwner: TComponent);
begin
  // Tu código
  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...
Responder Con Cita