unit calibrescalidad;

interface

uses
  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, uFireDacHelper,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Vcl.StdCtrls, Vcl.DBCtrls, Vcl.Mask,
  Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, datos,
    Data.DB;

type
  Tfcalibrescalidad = class(TForm)
    Panel13: TPanel;
    Panel17: TPanel;
    DBGrid3: TDBGrid;
    Panel7: TPanel;
    btAcancelar: TButton;
    btAmodificar: TButton;
    btAborrar: TButton;
    btAnuevo: TButton;
    btAguardar: TButton;
    qaux: TFDQuery;
    qcalibrescalidad: TFDQuery;
    dscalibres: TDataSource;
    qcalibrescalidadid: TIntegerField;
    qcalibrescalidaddescripcion: TWideStringField;
    qcalibrescalidadvalor: TWideStringField;
    procedure btAnuevoClick(Sender: TObject);
    procedure btAborrarClick(Sender: TObject);
    procedure btAmodificarClick(Sender: TObject);
    procedure btAguardarClick(Sender: TObject);
    procedure btAcancelarClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure dscalibresStateChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fcalibrescalidad: Tfcalibrescalidad;

implementation

{$R *.dfm}

procedure Tfcalibrescalidad.btAborrarClick(Sender: TObject);
begin
    qcalibrescalidad.Delete;
end;

procedure Tfcalibrescalidad.btAcancelarClick(Sender: TObject);
begin
   qcalibrescalidad.Cancel;
   dbgrid3.ReadOnly:=true;
end;

procedure Tfcalibrescalidad.btAguardarClick(Sender: TObject);
begin

    qcalibrescalidad.Post;
    dbgrid3.ReadOnly:=true;
end;

procedure Tfcalibrescalidad.btAmodificarClick(Sender: TObject);
begin
    dbgrid3.ReadOnly:=false;
    qcalibrescalidad.Edit;
end;

procedure Tfcalibrescalidad.btAnuevoClick(Sender: TObject);
begin
   dbgrid3.ReadOnly:=false;
   qaux.sql.clear;
   qaux.SQL.Add('select max(id)+1 from calibrescalidad');
   qaux.Open;
   qcalibrescalidad.append;
   dbgrid3.setfocus;
   qcalibrescalidadid.Value:=qaux.Fields[0].AsInteger;
end;

procedure Tfcalibrescalidad.dscalibresStateChange(Sender: TObject);
begin
if qcalibrescalidad.State in [dsedit,dsinsert] then
begin
    btanuevo.Enabled:=false;
    btamodificar.Enabled:=false;
    btaborrar.Enabled:=false;
    btacancelar.Enabled:=true;
    btaguardar.Enabled:=true;
end else
begin
    btanuevo.Enabled:=true;
    btamodificar.Enabled:=true;
    btaborrar.Enabled:=true;
    btacancelar.Enabled:=false;
    btaguardar.Enabled:=false;
end;
end;

procedure Tfcalibrescalidad.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (activecontrol is tdbgrid) then
    begin
        if Key = 13 then Key :=9;
    end;
end;

procedure Tfcalibrescalidad.FormKeyPress(Sender: TObject; var Key: Char);
begin
   key:=upcase(key);
    if (key='.') and (activecontrol is tdbedit) then
    begin
       if  (activecontrol as tdbedit).Field.DataType in [ftfloat,ftCurrency,ftbcd,ftfmtbcd] then key:=','
    end;
    if (key='.') and (activecontrol is tdbgrid) then
    begin
        key:=','
    end;
    if (activecontrol is tdbgrid) then
    begin
        if Key = #13 then Key :=#9;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;
end;

procedure Tfcalibrescalidad.FormShow(Sender: TObject);
begin
    qcalibrescalidad.Close;
    qcalibrescalidad.Open;
end;

end.
