Diferencia entre revisiones de «TprxDBEditDateTime»
(Página creada con «=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). miniaturadeimagen|no|TprxDBDateTime en una factura. =Identidad= Category:MANUAL/PROGRAMADOR Category:CONTROLES *Ancestro: TDBEdit *Carpeta: C:\DevelopPrx\library *Archivo: prxDBEditDateTime.pas =Declaración= <pre> type TprxD…») |
Sin resumen de edición |
||
Línea 128: | Línea 128: | ||
Normalmente lo instancia [[TprxScrollBox]]. | Normalmente lo instancia [[TprxScrollBox]]. | ||
=Form TTprxDBEditDateTimePickerForm= | |||
El siguiente form se usa para seleccionar una fecha desde el control de edición: | |||
*[[TTprxDBEditDateTimePickerForm|Selección de una fecha (TTprxDBEditDateTimePickerForm)]] (deriva de TTprxForm). |
Revisión del 17:50 27 may 2025
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.
Form TTprxDBEditDateTimePickerForm
El siguiente form se usa para seleccionar una fecha desde el control de edición:
- Selección de una fecha (TTprxDBEditDateTimePickerForm) (deriva de TTprxForm).