TprxDBEditDateTime
Descripción
El objeto TprxDBEditDateTime (Control de edición de campos DATETIME.) es el control de edición usado para campos DATETIME (fecha y hora).

Identidad
- Ancestro: TDBEdit
- Carpeta: C:\DevelopPrx\library
- Archivo: prxDBEditDateTime.pas
Declaración
type TprxDBEditDateTime = class(TDBEdit) private FDataControl: String; FComportamiento: String; FOnEnterField: TprxADOOnEnterField; FOnExitField: TprxADOOnExitField; FDay: Integer; FMonth: Integer; FYear: Integer; FHour: Integer; FMinute: Integer; 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 function DecodeValue: Boolean; function prxOccurs(const aStr: string; const aSubstr: string): Integer; procedure LocalKeyPress(Sender: TObject; var Key: Char); procedure SetTextValue; function GetTextValue: Boolean; function EsFechaValida: Boolean; property Day: Integer read FDay write FDay; property Month: Integer read FMonth write FMonth; property Year: Integer read FYear write FYear; property Hour: Integer read FHour write FHour; property Minute: Integer read FMinute write FMinute; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Loaded; override; procedure AssignDataSource(aDataSource: TDataSource; aDataField: String); procedure Seleccionar(Sender: TObject); property DataControl: String read FDataControl write FDataControl; property Comportamiento: String read FComportamiento write FComportamiento; 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 TprxDBEditDateTimeCreate(AOwner: TComponent; aDataSource: TDataSource; aFieldName: String): TprxDBEditDateTime
Esta función está definida fuera de la clase y sirve para crear un nuevo control de edición directamente.
Implementación
procedure Loaded
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 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.
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.
- msgScroll el dataset cambia de registro.
- msgFocus pone el foco sobre el control (si el control lo admite).
- msgFindFocus si el control puede enfocar lo hace.
procedure CNKeyDown(var Message: TWMKeyDown)
Atrapa las teclas:
- VK_RETURN (ENTER) y avanza al siguiente control.
- VK_F5 (F5) abre el form de selección de fecha.
procedure LocalKeyPress(Sender: TObject; var Key: Char)
Valida los caracteres ingresados según sea una fecha o una hora.
procedure Seleccionar(Sender: TObject)
Abre el form TTprxDBEditDateTimePickerForm para seleccionar una fecha.
procedure SetTextValue
Asigna al control el valor de la fecha u hora en formato texto.
function GetTextValue: Boolean
Toma el valor del control que está en formato texto.
function EsFechaValida: Boolean
Retorna True si el valor del control es una fecha válida.
Uso
En las pantallas de edición, cuando el campo es de tipo DATETIME.
Normalmente lo instancia TprxScrollBox.