Diferencia entre revisiones de «TprxDBMemo»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
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 grandes.
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.]]
[[Archivo:20250523 1250 TPRXDBMEMO.png|miniaturadeimagen|no|TprxDBMemo en una factura.]]

Revisión del 17:51 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.

TprxDBMemo en una factura.

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.