Diferencia entre revisiones de «TTfvsDBClientFrameScrollBox»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 31: Línea 31:


El comando '''BREAK''' abre el panel a derecha, solo lo hace una vez por lo que si más de un campo tiene el comando el panel se abre solo con el primero.
El comando '''BREAK''' abre el panel a derecha, solo lo hace una vez por lo que si más de un campo tiene el comando el panel se abre solo con el primero.
===Definición del frame===
No es necesario definir este frame durante el diseño de las clases ya que es la opción por defecto.
=Declaración=
<pre>
type
  TTfvsDBClientFrameScrollBox = class(TTfvsDBClientFrame)
    Panel1: TPanel;
    PanelNAVEGADOR: TPanel;
    DBNavigator1: TfvsDBNavigator;
    Bevel1: TBevel;
    Panel2: TPanel;
    PanelIZQUIERDO: TPanel;
    PanelDERECHO: TPanel;
    Splitter1: TSplitter;
    prxScrollBoxIZQUIERDO: TprxScrollBox;
    prxScrollBoxDERECHO: TprxScrollBox;
    Panel3: TPanel;
    SpeedButton_OPCIONES: TfvsBotonOpciones;
    Action_INSERT: TAction;
    Action_EDIT: TAction;
    Action_POST: TAction;
    Action_CANCEL: TAction;
    Action_DELETE: TAction;
    procedure Panel1Resize(Sender: TObject);
    procedure DBNavigator1NavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
    procedure SpeedButton_OPCIONESGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu);
    procedure TestCommandsClick(Sender: TObject);
    procedure Action_BotonOpcionesVisibleExecute(Sender: TObject);
    procedure Action_INSERT_Execute(Sender: TObject);
    procedure Action_EDIT_Execute(Sender: TObject);
    procedure Action_POST_Execute(Sender: TObject);
    procedure Action_CANCEL_Execute(Sender: TObject);
    procedure Action_DELETE_Execute(Sender: TObject);
  private
    FUsaPanelDERECHO: Boolean;
    FMasterClass: TfvsClass;
  protected
    procedure  SetUsaPanelDERECHO(aValue: Boolean);
    function    GetUsaPanelDERECHO: Boolean;
    procedure  SetDataSet(aValue: TprxADODataSetEdit); override;
    property    MasterClass: TfvsClass read FMasterClass write FMasterClass;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure  OnFrameShow(Sender: TObject); override;
    function    AgregarControles(aDataSet: TprxADODataSetEdit; aTableName: String): Integer; override;
    procedure  ClassShow_BuildFrame(Sender: TObject); override;
    function    ClassShow_AgregarTablaMaster(aTabla: String): Boolean; override;
    function    ClassShow_AgregarControles: Boolean; override;
    function    ClassShow_Activate(aActivateDataSet: Boolean): Boolean; override;
    procedure  OnExecute_INSERT(var aHandled: Boolean); override;
    procedure  OnExecute_EDIT(var aHandled: Boolean); override;
    procedure  OnExecute_POST(var aHandled: Boolean); override;
    procedure  OnExecute_CANCEL(var aHandled: Boolean); override;
    procedure  OnExecute_DELETE(var aHandled: Boolean); override;
    procedure  OnExecute_REFRESH(var aHandled: Boolean); override;
    property    UsaPanelDERECHO: Boolean read GetUsaPanelDERECHO write SetUsaPanelDERECHO;
  end;
</pre>

Revisión del 19:49 3 jun 2025

Descripción

El frame TTfvsDBClientFrameScrollBox (Implementa scrollbox para agregar controles de edición.) implementa dos paneles separados por un TSplitter vertical que es un control visual que permite cambiar el tamaño de esos paneles. El splitter puede moverse con el mouse para que los paneles se agranden o achiquen según hacia donde se mueva.

Identidad

  • Ancestro: TTfvsDBClientFrame
  • Carpeta: C:\DevelopPrx\frames
  • Archivo: fvsDBClientFrameScrollBox.pas

Frame en diseño

Frame en diseño.
  • Navegador permite navegar entre los registros del dataset, cambiar el estado (inserción, edición, etc) y se activará según el dataset. Está contenido dentro de un panel horizontal que ocupa todo el ancho del frame.
  • TScrollbox izquierdo es el panel visible por defecto, al panel se le agregan controles de edición. Si éstos ocuparan más que la altura del panel aparecerán barras de desplazamiento (scroll bars).
  • TScrollbox derecho por defecto no está visible, pero si alguno de los campos contiene el prefijo BREAK en su definición entonces este panel se hace visible y contendrá los siguientes campos. Del mismo modo que el panel a izquierda, si los controles agregados superaran la altura del panel aparecerán barras de desplazamiento.
  • Splitter divide ambos paneles y permite correrlo hacia la izquierda o derecha para cambiar el ancho de los paneles.

Ver Panel para mayores detalles sobre el posicionamiento de un control en un frame.

Frame con un solo panel

Este frame corresponde a la tabla de ARTICULOS y tiene un solo panel.

Frame con un solo panel.

Frame con dos paneles

Para ver el mismo frame con dos paneles primero tenemos que agregar el atributo BREAK al campo selección:

Agregar el atributo BREAK al grupo.

Ahora vemos la misma pantalla, pero con los dos paneles y el splitter separando ambos (se nota el cursor indicando el separador justo entre ambos paneles):

Frame con dos paneles.

El comando BREAK abre el panel a derecha, solo lo hace una vez por lo que si más de un campo tiene el comando el panel se abre solo con el primero.

Definición del frame

No es necesario definir este frame durante el diseño de las clases ya que es la opción por defecto.

Declaración

type
  TTfvsDBClientFrameScrollBox = class(TTfvsDBClientFrame)
    Panel1: TPanel;
    PanelNAVEGADOR: TPanel;
    DBNavigator1: TfvsDBNavigator;
    Bevel1: TBevel;
    Panel2: TPanel;
    PanelIZQUIERDO: TPanel;
    PanelDERECHO: TPanel;
    Splitter1: TSplitter;
    prxScrollBoxIZQUIERDO: TprxScrollBox;
    prxScrollBoxDERECHO: TprxScrollBox;
    Panel3: TPanel;
    SpeedButton_OPCIONES: TfvsBotonOpciones;
    Action_INSERT: TAction;
    Action_EDIT: TAction;
    Action_POST: TAction;
    Action_CANCEL: TAction;
    Action_DELETE: TAction;
    procedure Panel1Resize(Sender: TObject);
    procedure DBNavigator1NavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
    procedure SpeedButton_OPCIONESGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu);
    procedure TestCommandsClick(Sender: TObject);
    procedure Action_BotonOpcionesVisibleExecute(Sender: TObject);
    procedure Action_INSERT_Execute(Sender: TObject);
    procedure Action_EDIT_Execute(Sender: TObject);
    procedure Action_POST_Execute(Sender: TObject);
    procedure Action_CANCEL_Execute(Sender: TObject);
    procedure Action_DELETE_Execute(Sender: TObject);
  private
    FUsaPanelDERECHO: Boolean;
    FMasterClass: TfvsClass;
  protected
    procedure   SetUsaPanelDERECHO(aValue: Boolean);
    function    GetUsaPanelDERECHO: Boolean;
    procedure   SetDataSet(aValue: TprxADODataSetEdit); override;

    property    MasterClass: TfvsClass read FMasterClass write FMasterClass;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure   OnFrameShow(Sender: TObject); override;
    function    AgregarControles(aDataSet: TprxADODataSetEdit; aTableName: String): Integer; override;

    procedure   ClassShow_BuildFrame(Sender: TObject); override;
    function    ClassShow_AgregarTablaMaster(aTabla: String): Boolean; override;
    function    ClassShow_AgregarControles: Boolean; override;
    function    ClassShow_Activate(aActivateDataSet: Boolean): Boolean; override;

    procedure   OnExecute_INSERT(var aHandled: Boolean); override;
    procedure   OnExecute_EDIT(var aHandled: Boolean); override;
    procedure   OnExecute_POST(var aHandled: Boolean); override;
    procedure   OnExecute_CANCEL(var aHandled: Boolean); override;
    procedure   OnExecute_DELETE(var aHandled: Boolean); override;
    procedure   OnExecute_REFRESH(var aHandled: Boolean); override;

    property    UsaPanelDERECHO: Boolean read GetUsaPanelDERECHO write SetUsaPanelDERECHO;
  end;