unit uLogProcesos;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls,
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
  FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async,
  FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, Vcl.StdCtrls, uDM;

type
  TfrmLogProcesos = class(TForm)
    pnlTop: TPanel;
    pnlGrid: TPanel;
    dbGridLog: TDBGrid;
    dsLog: TDataSource;
    qLog: TFDQuery;
    lblTitle: TLabel;
    btnActualizar: TButton;
    btnCerrar: TButton;
    procedure btnActualizarClick(Sender: TObject);
    procedure btnCerrarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure dbGridLogDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmLogProcesos: TfrmLogProcesos;

implementation

{$R *.dfm}

procedure TfrmLogProcesos.btnActualizarClick(Sender: TObject);
begin
  qLog.Close;
  qLog.Open;
end;

procedure TfrmLogProcesos.btnCerrarClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmLogProcesos.dbGridLogDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if not (gdSelected in State) then
  begin
    if qLog.FieldByName('tipo').AsString = 'ERROR' then
    begin
      dbGridLog.Canvas.Brush.Color := $00CCCCFF; // Rojo muy suave
      dbGridLog.Canvas.Font.Color := clRed;
    end
    else if qLog.FieldByName('tipo').AsString = 'WARNING' then
    begin
      dbGridLog.Canvas.Brush.Color := $00CCFFFF; // Amarillo suave
      dbGridLog.Canvas.Font.Color := clNavy;
    end;
    
    dbGridLog.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
end;

procedure TfrmLogProcesos.FormShow(Sender: TObject);
begin
  btnActualizarClick(nil);
end;

end.
