Ver Mensaje Individual
  #2  
Antiguo 27-07-2015
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Te faltaba por usar la otra alternativa de la sentencia if:
Código Delphi [-]
if  a then 
begin 

end
else if b then
begin 

end

También he cambiado el nombre (a mi parecer ambiguo) que tenía por uno más estandard. Y el primer parámetro que le paso es si estará habilitado o no, aunque estas cosas es más al gusto de cada uno.

Yo creo que mejora la legibilidad ya que lees "Establecer solo lectura: SI, a los controles siguientes...blah, blah".

Código Delphi [-]
procedure SetReadOnly(const Enabled: Boolean; Ctrls: array of TWinControl);
var
  i: Integer;
begin
  for i:= Low(Ctrls) to High(Ctrls) do
  begin
    // TEdit
    if Ctrls[i] is TEdit then
    begin
      if Enabled 
        then  Ctrls[i].Color := $00FEEAD3
        else  Ctrls[i].Color := clWhite;
      Ctrls[i].ReadOnly := Enabled;
    end 
    else if Ctrls[i] is TcxCurrencyEdit then
    begin
      // TcxCurrencyEdit
    end
    else if Ctrls[i] is TsDateEdit then
    begin
    // TsDateEdit
    end;
  end;
end;

y para utilizarlo sería así...

Código Delphi [-]
procedure TFProductos.Button1Click(Sender: TObject);
begin
  SetReadOnly(True, [Edit1, cxCurrencyEdit1, TsDateEdit]);
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita