Вы находитесь на странице: 1из 10

Bienvenido a VFPSkin!!!

Con esta clase usted podr cambiar completamente la apariencia de sus productos desarrollados en Visual FoxPro 6.0 o superior.

VFPSkin
Permite cambiar la apariencia de los formularios diseados en Visual FoxPro 6.0 o superior. Simplemente agregue la clase al formulario, establezca en la propiedad cSkinName el nombre del archivo de skin que va a usar (archivo VFS) y ejecute el formulario. Eso es todo. Tambin puede usar el nuevo generador incorporado a VFPSkin (VFPSkinBuilder) para establecer las propiedades necesarias para el funcionamiento de VFPSkin y ver una Vista Previa Real de su formulario, en Tiempo de Diseo, sin necesidad de ejecutarlo.

Este archivo de documentacin se aplica a: VFPSkin 3.0 Single License ltima revisin: 21/10/03 04:55 P.M. Idioma: Espaol
http://www.vfpskin.com.ar info@vfpskin.com.ar

PROPIEDADES
cLangFileName
Contiene el nombre del archivo de lenguaje que usa VFPSkin para los elementos con soporte multilinge (tooltips, caption de botones, etc) Sintaxis Objeto.cLangFileName[ = cArchivoDeIdioma] cArchivoDeIdioma Contiene el nombre completo de un archivo de idioma (LNG). Puede especificarse el camino completo al archivo o, si la ubicacin del archivo se encuentra especificada a travs del comando SET PATH, simplemente el nombre del archivo. Comentarios El valor por defecto de esta propiedad es [DEFAULT] y contiene todas las referencias en ingls. Si el archivo no existe, no es vlido o no contiene todas las entradas, se utilizarn los valores por defecto para cada entrada de referencia que no pueda ser localizada. Es recomendable especificar este archivo en tiempo de diseo para un correcto funcionamiento de las referencias multilinges. Ejemplo Para ver cul es el archivo de idioma que se est utilizando actualmente: Wait Window ThisForm.VFPSkin1.cLangFileName Para cambiar el archivo de idioma: ThisForm.VFPSkin1.cLangFileName = "SkinLang\Espaol.LNG" ---

cSkinName
Contiene el nombre del archivo de skin que usa VFPSkin Sintaxis Objeto.cSkinName[ = cArchivoDeSkin] cArchivoDeSkin Contiene el nombre completo de un archivo de skin (VFS). Puede especificarse el camino completo al archivo o, si la ubicacin del archivo se encuentra especificada a travs del comando SET PATH, simplemente el nombre del archivo. Comentarios Esta propiedad debe ser especificada en tiempo de diseo. En tiempo de ejecucin, cambiar el valor de esta propiedad puede producir resultados indeseables. Para cambiar el archivo de skin en tiempo de ejecucin, debe utilizar el mtodo SetSkinName o, para hacerlo interactivamente, el mtodo ChangeSkin. Para ms informacin, consulte la ayuda de cada uno de estos mtodos. Ejemplo Para ver cul es el archivo de skin que se est utilizando actualmente: Wait Window ThisForm.VFPSkin1.cSkinName

lUseControlButton
http://www.vfpskin.com.ar info@vfpskin.com.ar

Especifica si se visualiza en los skins el botn de Control de ventana Sintaxis Objeto.lUseControlButton[ = lUsarControlVentana] Comentarios Los archivos de skin tienen actualmente una imagen que es usada en lugar del tradicional icono de Windows en la parte superior izquierda de los formularios. Este icono no ser visualizado si lUseControlButton es .F.; si es .T., el icono ser visualizado dependiendo del estado de la propiedad ControlBox del formulario. Si se hubiese especificado un icono para el formulario (propiedad Icon), el archivo especificado es el que ser visualizado en lugar de la imagen que viene con el archivo del skin aplicado en ese momento al formulario. Para actualizar el estado del skin una vez que cambia el valor de la propiedad lUseControlButton, debe realizar una llamada al mtodo SetButtonsAttributes. Para ms informacin, vea la ayuda de ese mtodo. ---

lUseSkinArea
Especifica si se utiliza el rea cliente definida en el archivo del skin Sintaxis Objeto.lSkinArea[ = lUsarArea] Comentarios Los archivos de skin traen definida un rea cliente. Esta rea sirve para que VFPSkin reposicione automticamente los controles dentro del formulario de manera tal que los controles que el mismo contiene no "pisen" las imgenes que componen el skin. En la versin 2.0 de VFPSkin usted tena que acomodar manualmente los controles dentro del formulario para que esto no ocurra. Esta propiedad debe ser establecida en tiempo de diseo. Cambiar su valor en tiempo de ejecucin puede producir resultados no deseados. ---

nSkinType
Especifica cmo trabaja internamente VFPSkin Sintaxis Objeto.nSkinType[ = nModoDeTrabajo] nModoDeTrabajo El modo de trabajo de VFPSkin puede ser 0 - Autnomo (valor por defecto) o 1 - Normal (Cualquier valor distinto de 0 ser considerado como 1 mientras VFPSkin Team no comunique lo contrario) Comentarios La idea de utilizar esta propiedad es la de ahorrar recursos comunes al objeto VFPSkin que contiene cada formulario dentro de una aplicacin. Usando el modo de trabajo Autnomo (0), VFPSkin crea un administrador de archivos VFS propio. Este objeto es el encargado de recopilar todos los datos del archivo VFS y devolvrselo a VFPSkin cada vez que ste los solicita. Usando el modo de trabajo Normal (1 o un valor distinto de 0), VFPSkin trabaja con un administrador de archivos VFS previamente creado (esto se explica ms adelante). De esta forma, se disminuye la cantidad de recursos consumidos ya que se utiliza el mismo administrador para todos los objetos VFPSkin y se agiliza la lectura del archivo VFS ya que se accede al mismo slo una vez.
http://www.vfpskin.com.ar info@vfpskin.com.ar

Disponible en tiempo de diseo. Cambiar el valor de esta propiedad en tiempo de ejecucin no producir resultado alguno. Cmo utilizar un administrador de archivos VFS compartido? Para utilizar un administrador de archivos VFS compartido tiene que agregar unas cuantas lneas de cdigo a su programa principal y establecer el nombre del archivo de skin que se va a utilizar en toda la aplicacin. El siguiente cdigo puede ser agregado a su programa de inicio: Set ClassLib To "VFPSkinTools.VCX" Additive _Screen.AddObject("oMasterSkin", "VFPSkinMaster") If _Screen.oMasterSkin.ReadSkin("Skins\MySkin.VFS") *-- El archivo de skin se encuentra cargado correctamente Else *-- Ocurri un error al leer el skin especificado EndIf Si utiliza una clase de base para todos sus formularios, agregue la clase VFPSkin en la misma y establezca la propiedad nSkinType con el valor 1. Caso contrario, si no utiliza una clase de base, deber establecer este valor en la propiedad del objeto VFPSkin de cada formulario. Si quiere, puede no establecer el archivo de skin en el cdigo anterior y especificarlo en la propiedad cSkinName del objeto VFPSkin de la clase base de sus formularios o en el objeto VFPSkin de cada formulario. Cuando VFPSkin se inicia y est trabajando en modo normal, verifica si el administrador general de archivos VFS tiene un skin establecido. Si no lo tiene, asignar el especificado en esta propiedad.

MTODOS
http://www.vfpskin.com.ar info@vfpskin.com.ar

ChangeSkin
Abre un cuadro de dilogo que permite cambiar el skin actualmente seleccionado. Sintaxis Objeto.ChangeSkin() Comentarios Este mtodo permite el cambio interactivo del skin actualmente seleccionado. El cuadro de dilogo proporcionado por VFPSkin muestra los skins disponibles en la carpeta actual y permite obtener una vista previa de cada uno al momento de seleccionarlo. Una vez que selecciona el skin, puede hacer clic en el botn "Aceptar" para aplicar ese skin al formulario que llam al mtodo o puede hacer clic en "Cancelar" para dejar sin efecto el cambio solicitado. Si el skin es cambiado, la propiedad cSkinName contendr el nombre y ruta completa del archivo VFS seleccionado. Ejemplo Para cambiar un skin de manera interactiva: ThisForm.VFPSkin1.ChangeSkin() ---

ChangeWindowState
Cambia el estado del formulario en el cual se encuentra el objeto VFPSkin. Sintaxis Objeto.ChangeWindowState(nEstadoVentana) nEstadoVentana Especifica cmo va a cambiar el estado del formulario. Si nEstadoVentana es 1, el formulario ser Minimizado. Si nEstadoVentana es 2, el cambio depender del estado actual del formulario de acuerdo a la propiedad WindowState. Si WindowState es 0 (Ventana en estado normal), el formulario ser Maximizado; si WindowState es 2 (Ventana maximizada), el formulario ser restaurado a su tamao anterior. Comentarios Este mtodo es usado internamente por VFPSkin, pero puede querer utilizarlo para algn control personalizado que maneje el estado de la ventana o para cambiar el estado de la ventana a travs de cdigo. Para que trabaje correctamente, la propiedad ControlBox del formulario debe tener .T. como valor y, dependiendo de la accin a tomar, tambin las propiedades MinButton y MaxButton deben tener .T. Es recomendable que sustituya todas las lneas de cdigo de sus programas, mtodos y eventos que trabajen directamente sobre la propiedad WindowState del formulario por este mtodo ya que pueden producirse resultados inesperados si VFPSkin no maneja el estado de la ventana del formulario. Ejemplo MessageBox("Haga clic para minimizar el formulario", ThisForm.VFPSkin1.ChangeWindowState(1) &&Minimizamos Wait Window "Aguarde y el formulario ser restaurado ThisForm.VFPSkin1.ChangeWindowState(2) &&Restauramos MessageBox("Haga clic para maximizar el formulario", ThisForm.VFPSkin1.ChangeWindowState(2) &&Maximizamos MessageBox("Haga clic para restaurar el formulario", ThisForm.VFPSkin1.ChangeWindowState(2) --64, "Informacin") el formulario automticamente..." TimeOut 5 el formulario 64, "Informacin") el formulario 64, "Informacin")

http://www.vfpskin.com.ar

info@vfpskin.com.ar

FrmMove
Usado internamente por VFPSkin para mover el formulario a travs del mouse. ---

FrmResize
Usado internamente por VFPSkin para redimensionar el formulario a travs del mouse. ---

GetMasterInfo
Usado internamente por VFPSkin para solicitar informacin al objeto que administra el archivo VFS actualmente seleccionado. ---

SaveFormMousePos
Usado internamente por VFPSkin para guardar las coordenadas de la posicin actual del puntero del mouse. ---

SetButtonsAttributes
Actualiza el estado de los 4 botones que tiene toda ventana (Control de Ventana, Minimizar, Maximizar/Restaurar, Cerrar). Sintaxis Objeto.SetButtonsAttributes() Comentarios Cuando modifique a travs de cdigo el estado de alguna de las siguientes propiedades del formulario, Closable, ControlBox, Icon, MaxButton, MinButton, o la propiedad lUseControlButton del objeto VFPSkin, debe realizar una llamada a este mtodo para que VFPSkin actualice el estado de los botones de la ventana del formulario. Ejemplo *-- Cambiamos el estado del botn minimizar ThisForm.MinButton = .F. *-- Asignamos un cono personalizado al formulario ThisForm.Icon = "Images\MyIcon.ICO" *-- Actualizamos el estado de los botones de VFPSkin ThisForm.VFPSkin1.SetButtonsAttributes() ---

SetSkinCaption
Cambia el texto de la barra de ttulos del formulario. Sintaxis Objeto.SetSkinCaption([cTitulo]) cTitulo El texto de la barra de ttulos del formulario. Este parmetro es opcional. Si no se especifica, VFPSkin asignar automticamente el contenido de la propiedad Caption del formulario.

http://www.vfpskin.com.ar

info@vfpskin.com.ar

Comentarios Cuando modifique a travs de cdigo el valor de la propiedad Caption del formulario, debe actualizar el contenido de la barra de ttulos que maneja VFPSkin a travs de este mtodo. Ejemplo *-- Cambiamos el ttulo del formulario ThisForm.Caption = Test form *-- Actualizamos el ttulo del skin ThisForm.VFPSkin1.SetSkinCaption() ---

SetSkinName
Establece el archivo de skin (archivo VFS) que usar VFPSkin. Sintaxis Objeto.SetSkinName(cArchivoVFS) cArchivoVFS El nombre del archivo VFS del skin que se quiere establecer. Puede especificarse el camino completo al archivo o, si la ubicacin del archivo se encuentra especificada a travs del comando SET PATH, simplemente el nombre del archivo. Comentarios Una vez que la clase se ha iniciado, no se puede hacer uso de la propiedad cSkinName para cambiar el skin actual. En su lugar, utilice este mtodo para cambiar el archivo de skin a travs de cdigo o llame al mtodo ChangeSkin para cambiarlo interactivamente. Ejemplo *-- Establecemos un nuevo archivo de skin ThisForm.VFPSkin1.SetSkinName(Skins\MyNewSkin.VFS) ---

SkinAboutBox
Muestra el cuadro de dilogo Acerca de... de VFPSkin. Sintaxis Objeto.SkinAboutBox() Comentarios Puede ingresar al sitio web de VFPSkin haciendo clic en la direccin de la pgina web o puede enviar un email tambin haciendo clic en la direccin de correo. Ejemplo ThisForm.VFPSkin1.SkinAboutBox()

SkinContainer, SkinControl
Aplica el skin todos los objetos contenidos en un objeto contenedor o un objeto propiamente dicho, agregados en tiempo de ejecucin. Sintaxis Objeto.SkinContainer(oContenedor)
http://www.vfpskin.com.ar info@vfpskin.com.ar

Objeto.SkinControl(oControl) oContenedor El nombre del objeto contenedor que contiene los objetos a los cuales se desea aplicar skin. oControl El nombre del control al cual se desea aplicar el skin. Comentarios Cuando trabaje con VFPSkin ver que los objetos agregados en tiempo de ejecucin en sus formularios no tienen la apariencia grfica definida para el mismo en el archivo del skin aplicado actualmente. Para ello, cuando agregue un objeto en tiempo de ejecucin, simplemente agregue una llamada a uno de estos mtodos para que el control o los objetos contenidos en el contenedor tomen la apariencia especificada en el skin. La diferencia entre ambos mtodos radica en que SkinContainer aplica el skin los objetos contenidos en un contenedor pero no el contenedor propiamente dicho. SkinControl aplica el skin un control en particular independientemente de que el mismo sea contenedor o no. Vea el ejemplo a continuacin para ms informacin. Ejemplo *-- El formulario de este ejemplo debe tener un PageFrame *-- Se asume tambin que el formulario tiene un objeto VFPSkin *-- y que el PageFrame tiene 3 objetos Page *-- El cdigo a continuacin podra ir en un CommandButton *-- Agregamos un objeto Page ms al PageFrame ThisForm.PageFrame1.PageCount = ThisForm.PageFrame1.PageCount + 1 Local oPage OPage = ThisForm.PageFrame1.Pages[ThisForm.PageFrame1.PageCount] *-- Agregamos varios controles al Nuevo Page Local nControl, cMacro, oLabel, oText For nControl = 1 To 10 oPage.AddObject("RunTimeLabel" + Transform(nControl), "Label") cMacro = "oPage.RunTimeLabel" + Transform(nControl) oLabel = &cMacro With oLabel .Top = 35 * nControl .Left = 30 .Caption = "RunTime Label N" + Transform(nControl) .Visible = .T. Endwith Endfor For nControl = 1 To 10 oPage.AddObject("RunTimeTextBox" + Transform(nControl), "TextBox") cMacro = "oPage.RunTimeTextBox" + Transform(nControl) oText = &cMacro With oText .Top = 35 * nControl .Left = 160 .Value = "RunTime Text Box N" + Transform(nControl) .Width = 250 .Visible = .T. Endwith Endfor *-- Aplicamos el Skin al objeto Page agregado Thisform.VFPSkin1.SkinControl(oPage) *-- Aplicamos el Skin a los controles contenidos en el objeto Page Thisform.VFPSkin1.SkinContainer(oPage) --http://www.vfpskin.com.ar info@vfpskin.com.ar

SkinMessageBox
Simula la funcin MessageBox de Visual FoxPro pero con skins. Para ms informacin sobre esta funcin, consulte la ayuda. Sintaxis Objeto.SkinMessageBox(eMessageText[,cTitleBarText][,nDialogBoxType][,nTimeout]) Comentarios VFPSkin agrega la posibilidad de que sus cuadros de dilogo, mostrados a travs de la funcin MessageBox nativa de Visual FoxPro, sean visualizados con el skin establecido en el formulario que llama a la funcin. Recibe los mismos parmetros que indica la ayuda de Visual FoxPro para mantener una completa compatibilidad con el cdigo ya escrito. Simplemente agregue unas cuantas letras antes de la llamada a la funcin para hacer que VFPSkin se encargue del resto. Atencin usuarios de Visual FoxPro 6: La funcin MessageBox en esta versin de Visual FoxPro no incorpora el ltimo parmetro (nTimeOut) que es el que especifica el tiempo que se visualiza el cuadro de dilogo antes que el mismo se cierre automticamente. Con VFPSkin esto no importa ya que puede agregarlo a la llamada, una vez que modifique la funcin por el mtodo de VFPSkin. Ejemplo *-- La siguiente lnea es una llamada clsica a la funcin MessageBox =MessageBox(Desea cerrar la aplicacin?, 4 + 32 + 256, Consulta, 2000) *-- La siguiente lnea es la misma que la anterior pero realizada con VFPSkin =ThisForm.VFPSkin1.SkinMessageBox(Desea cerrar la aplicacin?,; 4 + 32 + 256, Consulta, 2000)

http://www.vfpskin.com.ar

info@vfpskin.com.ar

SUGERENCIAS PARA EL DESARROLLADOR Debido a que hemos descubierto algunos bugs en algunas versiones de Visual FoxPro al momento de utilizar el evento Assign, es que muchas propiedades aqu descriptas deben llamar a un mtodo de la clase para establecer el valor real. Usted puede programar sus clases de base creando un evento Assign que llame automticamente al mtodo correspondiente de VFPSkin o VFPSkinButton. Por ejemplo: VFPSkin tiene el mtodo SetSkinCaption para establecer el Caption del skin. Cada vez que usted cambie por cdigo el valor de esta propiedad deber realizar una llamada al mtodo para que VFPSkin actualice el Caption del formulario al cual se le aplico el skin. Usted podra crear el evento Caption_Assign y escribir el siguiente cdigo para que se haga la llamada automticamente: LPARAMETERS vNewVal *To do: Modify this routine for the Assign method THIS.CAPTION = m.vNewVal This.VFPSkin1.SetSkinCaption()

Todos los productos, marcas y logos mencionados en este documento son propiedad y/o marca registrada de sus respectivos dueos.

http://www.vfpskin.com.ar

info@vfpskin.com.ar

Вам также может понравиться