Diferencia entre revisiones de «TprxDBMemo»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 31: Línea 31:
   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 del 17:43 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 grandes.

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.