Ver Mensaje Individual
  #2  
Antiguo 09-05-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Reputación: 17
Lord Delfos Va por buen camino
Bueno, con el tema del password no hay nada que hacerle. El TEdit ya es así y punto. Quizás debas buscar algún componente especializado que no funcione igual que el edit. Pero el comportamiento del edit no se puede cambiar.

Con respecto a las opciones de menu... pues a mí no me andan. Es decir, puede que queden habilitadas, pero la propiedad Enabled me queda en False, así que al hacer click en el menú, no pasa nada. Esto es en Delphi 7, así que puede cambiar, quizás sea un bug de D7.

Con los botones, menues y otros componentes quizás sería mejor que crees tu propia propiedad llamada Habilitado, y que maneje la habilitación por su cuenta... Algo así:

Código Delphi [-]
type TButton = class(StdCtrls.TButton)
  private
    FHabilitado: Boolean;
    procedure SetHabilitado(Valor: Boolean);
  public
    property Habilitado: Boolean read FHabilitado write SetHabilitado;
end;


procedure TButton.SetHabilitado(Valor: Boolean);
begin
  Enabled:= Valor;
  FHabilitado:= Valor;
end;


procedure TForm1.btn1Click(Sender: TObject);
begin
  if TButton(Sender).Habilitado then // <-- Acá evitás el problema.
    ShowMessage('a');
end;

Se podría usar el truquillo de la "declaración que pisotea" para redefinir la clase TButton y no tener que andar haciendo malabares en cada form.

Y siempre usar el Habilitado y no el enabled para habilitar o deshabilitar el botón.

Es un poco engorroso, porque tendrías que hacerlo con todas las clases que quieras bloquear, pero... Otra cosa no se me ocurre.

Qué sé yo, otra no se me ocurre... Esperemos a ver qué dicen los compañeros.

Saludos.
Responder Con Cita