TprxDBEdit
Descripción
El objeto TprxDBEdit (Control de edición DB de campos alfanuméricos.) es el control de edición usado para todos los tipos de campo que no sean:
- Lógicos.
- Combos.
- Fechas.
- Memos.
Es el control de edición más usado en la aplicación.
Identidad
- Ancestro: TDBEdit
- Carpeta: C:\DevelopPrx\library
- Archivo: prxDBEdit.pas
Declaración
type TprxDBEdit = class(TDBEdit) private FFieldXTD: Tfva_campos_item; FDataType: TprxEditDataType; FDataControl: String; FOnEnterField: TprxADOOnEnterField; FOnExitField: TprxADOOnExitField; FImages: TImageList; 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 property FieldXTD: Tfva_campos_item read FFieldXTD write FFieldXTD; procedure SetImages(aValue: TImageList); procedure LocalKeyPress(Sender: TObject; var Key: Char); procedure MostrarCamposCalculadosForm(Sender: TObject); procedure MostrarSuscripcionEvaluacionesForm(Sender: TObject); procedure MostrarMaestroDo(Sender: TObject); procedure SeleccionarPartidas(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Loaded; override; procedure AssignDataSource(aDataSource: TDataSource; aDataField: String); procedure Seleccionar(Sender: TObject); procedure MostrarMaestro(Sender: TObject); property DataType: TprxEditDataType read FDataType write FDataType; property DataControl: String read FDataControl write FDataControl; property Images: TImageList read FImages write SetImages; published property OnEnterField: TprxADOOnEnterField read FOnEnterField write FOnEnterField; property OnExitField: TprxADOOnExitField read FOnExitField write FOnExitField; end;
FFieldXTD: Tfva_campos_item
Propiedad que guarda referencia al campo del dataset asociado al control de edición.
FDataType: TprxEditDataType
Guarda el tipo de dato: edtCombo, edtAlpha, edtInteger, edtFloat o edtBoolean.
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 TprxDBEditCreate(AOwner: TComponent; aDataSource: TDataSource; aFieldName: String; aImages: TImageList = nil): TprxDBEdit
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.
Inicializa el campo Tfva_campos_item al que está asociado:
FieldXTD := TprxADODataSetEdit(DataSource.Dataset).FieldsXtdList.FieldByName(DataField); TprxADODataSetEdit(DataSource.Dataset).FieldsXtdList.AssignEditControl(DataField, Self);
Suscribe a los mensajes de dataset:
TprxADODataSetEdit(DataSource.Dataset).Messages.Subscribe(Self, DataField);
Inicializa OnEnter y OnExit a los definidos en el TprxADODataSetEdit:
OnEnterField := TprxADODataSetEdit(DataSource.Dataset).OnEnterFieldXtd; OnExitField := TprxADODataSetEdit(DataSource.Dataset).OnExitFieldXtd;
Si el campo es requerido lo pinta de verde:
if FieldXTD.Requerido then Self.Color := clMoneyGreen;