TTfvsDBClientFrameScrollBox
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

- 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 dos paneles
Para ver el mismo frame con dos paneles primero tenemos que agregar el atributo BREAK al campo selección:

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):

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;