Ver Mensaje Individual
  #14  
Antiguo 14-04-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Ahora que has comentado lo de RTTI, se me ha ocurrido otra forma de hacerlo durante la ejecución, en la que no haría falta modificar el código fuente de los DFM.

(1) Poddemos capturar la apertura de un formulario utilizando:

Código Delphi [-]
  Screen.OnActiveFormChange := FormChange;

(2) Y en ese momento podemos modificar en ejecución todos los TDBGrid que existan en ese formulario cambiandoles la propiedad ReadOnly.

Código Delphi [-]
procedure TForm1.FormChange(Sender: TObject);
var
  f:TForm;
  i:integer;
  grid:TDBGrid;
begin
  if Assigned(Screen.Activeform) then begin
    f := Screen.Activeform;
    for i := 0 to (f.ComponentCount - 1) do begin
      if (f.Components[i] is TDBGrid) then begin
        grid := TDbGrid(f.Components[i]);
        // Modificarlo
        grid.Color := clMoneyGreen;
      end;
    end;

  end;
end;

Lo he probado con un ejemplo y en mi caso en diseño todos los DBGrid son blancos y en ejecución les cambio el color (pero podría cambiar el ReadOnly).

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita