Diferencia entre revisiones de «TprxDBMemo»
(Página creada con «=Descripción= El objeto '''TprxDBMemo''' (Control de edición DB de campos memo.) es el control de edición usado en campos de tipo varchar grandes. =Identidad= Category:MANUAL/PROGRAMADOR Category:CONTROLES *Ancestro: TDBMemo *Carpeta: C:\DevelopPrx\library *Archivo: prxDBMemo.pas =Declaración= <pre> type TprxDBMemo = class(TDBMemo) private FOnEnterField: TprxADOOnEnterField; FOnExitField: TprxADOOnExitField; p…») |
|||
(No se muestran 4 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
=Descripción= | =Descripción= | ||
El objeto '''TprxDBMemo''' (Control de edición DB de campos memo.) es el control de edición usado en campos de tipo varchar | El objeto '''TprxDBMemo''' (Control de edición DB de campos memo.) es el control de edición usado en campos de tipo varchar cuyo tamaño es mayor a 128 caracteres. | ||
[[Archivo:20250523 1250 TPRXDBMEMO.png|miniaturadeimagen|no|TprxDBMemo en una factura.]] | |||
=[[QUEESESTO/IDENTIDAD|Identidad]]= | =[[QUEESESTO/IDENTIDAD|Identidad]]= | ||
Línea 18: | Línea 20: | ||
procedure CMEnter(var Message: TCMEnter); message CM_ENTER; | 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 CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN; | ||
procedure FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE; | procedure FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE; | ||
Línea 31: | Línea 33: | ||
end; | end; | ||
</pre> | </pre> | ||
===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 TprxDBMemoCreate(AOwner: TComponent; aDataSource: TDataSource; aFieldName: String): TprxDBMemo=== | |||
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: | |||
<pre> | |||
TprxADODataSetEdit(DataSource.Dataset).Messages.Subscribe(Self, DataField); | |||
TprxADODataSetEdit(DataSource.Dataset).FieldsXtdList.AssignEditControl(DataField, Self); | |||
</pre> | |||
Inicializa OnEnter y OnExit a los definidos en el [[TprxADODataSetEdit]]: | |||
<pre> | |||
OnEnterField := TprxADODataSetEdit(DataSource.Dataset).OnEnterFieldXtd; | |||
OnExitField := TprxADODataSetEdit(DataSource.Dataset).OnExitFieldXtd; | |||
</pre> | |||
===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. | |||
*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 la tecla VK_RETURN (ENTER) y avanza al siguiente control. | |||
=Uso= | |||
En las pantallas de edición, cuando el campo es de tipo VARCHAR y su tamaño es mayor a 128 usamos este control. | |||
Normalmente lo instancia [[TprxScrollBox]]. |
Revisión actual - 19:18 23 may 2025
Descripción
El objeto TprxDBMemo (Control de edición DB de campos memo.) es el control de edición usado en campos de tipo varchar cuyo tamaño es mayor a 128 caracteres.

Identidad
- Ancestro: TDBMemo
- Carpeta: C:\DevelopPrx\library
- Archivo: prxDBMemo.pas
Declaración
type TprxDBMemo = class(TDBMemo) 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 TprxDBMemoCreate(AOwner: TComponent; aDataSource: TDataSource; aFieldName: String): TprxDBMemo
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 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.
- 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 la tecla VK_RETURN (ENTER) y avanza al siguiente control.
Uso
En las pantallas de edición, cuando el campo es de tipo VARCHAR y su tamaño es mayor a 128 usamos este control.
Normalmente lo instancia TprxScrollBox.