TprxDBCheckBox

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Descripción

El objeto TprxDBCheckBox (Control de edición DB de campos BIT.) es el control de edición usado para los campos de tipo BIT.

Dos campos TDBCheckBox en una factura (Recupero de IVA e IIBB CABA).

Identidad

  • Ancestro: TDBCheckBox
  • Carpeta: C:\DevelopPrx\library
  • Archivo: prxDBCheckBox.pas

Declaración

type
  TprxDBCheckBox = class(TDBCheckBox)
  private
    FOnEnterField: TprxADOOnEnterField;
    FOnExitField: TprxADOOnExitField;

    procedure   CMEnter(var Message: TCMEnter); message CM_ENTER;
		procedure   CMExit(var Message: TCMExit); message CM_EXIT;
    procedure   CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN;
    procedure   FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE;
  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure   Loaded; override;
  published
    property    OnEnterField: TprxADOOnEnterField read FOnEnterField write FOnEnterField;
    property    OnExitField: TprxADOOnExitField read FOnExitField write FOnExitField;  
  end;

FOnEnterField: TprxADOOnEnterField

Permite definir una referencia al procedimiento que debe manejar el OnEnter.

FOnExitField: TprxADOOnExitField

Permite definir una referencia al procedimiento que debe manejar el OnExit.

Implementación

function TprxDBCheckBoxCreate(aOwner: TComponent; aDataSource: TDataSource; aFieldName: String): TprxDBCheckBox

Esta función está definida fuera de la clase y sirve para crear un nuevo control de edición directamente.

procedure Loaded

El procedimiento Loaded se ejecuta cuando un form ya se ha instanciado y está listo para mostrarse al usuario, inicializa algunas de las propiedades.

Suscribe a los mensajes de dataset:

TprxADODataSetEdit(DataSource.Dataset).Messages.Subscribe(Self, DataField);
TprxADODataSetEdit(DataSource.Dataset).FieldsXtdList.AssignEditControl(DataField, Self);

Inicializa OnEnter y OnExit a los definidos en el TprxADODataSetEdit:

OnEnterField := TprxADODataSetEdit(DataSource.Dataset).OnEnterFieldXtd;
OnExitField  := TprxADODataSetEdit(DataSource.Dataset).OnExitFieldXtd;

procedure CMEnter(var Message: TCMENTER)

Llama al OnEnterField, agregar el caption <- para que el foco en un checkbox sea más visible y poco más.

procedure CMExit(var Message: TCMExit)

Llama al OnExitField, si el resultado es True sigue normalmente, sino vuelve a setear foco en el control. Además, elimina el caption <-,

procedure CNKeyDown(var Message: TWMKeyDown)

Atrapa la tecla VK_RETURN (ENTER) y avanza al siguiente control.

procedure FieldMessage(var Message: TprxADODataSetMessage)

Recibe y procesa mensajes de la aplicación, los mensajes son:

  • msgEnable habilita (o deshabilita) un control según el estado que tenía.:
  • msgDisable deshabilita el control.
  • msgFocus pone el foco sobre el control (si el control lo admite).
  • msgFindFocus si el control puede enfocar lo hace.

Uso

El control de edición se usa para los campos de tipo BIT y habitualmente es instanciado por TprxScrollBox.