Normalmente por intentar hacer las aplicaciones lo mas rapido posible, copiamos de programas viejos codigo fuente lo modificamos y lo acoplamos al nuevo modulo, sabiendo que tenemos duplicadas funciones que al fin y al cabo hacen lo mismo, al menos a mi me pasa, como por ejemplo: procedimientos que manejan Browses y tengo una funcion que ircorpora una barra de botones para manejar dicho Browse. Pues en el caso, de tener 15 procedimientos, pues tengo, 15 funciones que al final hacen lo mismo. MAL, pero asi lo tengo.
Pues estoy creando nuevas clases para intentar ahorrar el maximo posible de codigo fuente y a su vez que sea lo mas claro y conciso posible.
La clase TBarBRW no es una clase nueva, ni nada en especial, pero para mi es muy util, ya que embebe una barra de botones automaticamente en los Browse con tal solo una linea de codigo.
Ademas de las propiedades nativas, le podemos indicar la situacion donde queremos que se cree ya sea, arriba, abajo, izquierda, derecha, estilo office 2007, 3D, Groups, menu popup, etc ( leer la pequeña ayuda que esta en el fuente del programa ). No he creado ningun ejemplo, porque simplemente tenemos que crear el objeto y automaticamente se creara con dichas propiedades. Abajo he dejado unas imagenes de como queda en funcion de los parametros que le damos cuando la creamos.
Para crear el objeto por ejemplo podemos hacerlo asi: ( esto crearia lo que vemos en la imagen-1): En el fuente teneis algunos detalles de uso mas concretos, como por ejemplo, uso de la propiedad Toogle(), menu popus, etc.
El crearla es simple y llanamente porque para mi es de mucha utilidad, que con esta linea de codigo fuente, he incrustado una barra de botones y me olvido totalmente de ella, si por ejemplo, modifico el recurso y subo o bajo el Browse, no tengo que tocar nada, cuando ejecuto la clase, ella ya localizara las posiciones del Browse y incrustara la barra donde debe.
Aqui os dejo el fuente de la clase:
http://www.proyectos-meliana.es/basura/tBarBRW.zip
- Code: Select all Expand view
oBar := TBarBRW():New( oDlg ,; // Objeto Dialog/Window
oGrid ,; // Objeto xBrowse
"TOP" ,; // Situacion de la barra
{ "vMenu_Nuevo" ,; // BMP para el 1 boton
"vMenu_Modificar" ,; // BMP para el 2 boton
"vMenu_Consultar" ,; // BMP para el 3 boton
"vMenu_Anular" ,; // BMP para el 4 boton
"vMenu_Excel" ,; // BMP para el 5 boton
"vMenu_Imprimir"} ,; // BMP para el 6 boton
{ "Nuevo" ,; // ToolTip para el 1 boton
"Modificar" ,; // ToolTip para el 2 boton
"Consultar" ,; // ToolTip para el 3 boton
"Anular" ,; // ToolTip para el 4 boton
"Excel" ,; // ToolTip para el 5 boton
"Imprimir" },; // ToolTip para el 6 boton
{ { | MsgInfo( "Nuevo") },; // ACTION para el 1 boton
{ || MsgInfo( "Modificar") },; // ACTION para el 2 boton
{ || MsgInfo( "Consultar") },; // ACTION para el 3 boton
{ || MsgInfo( "Anular") },; // ACTION para el 4 boton
{ || MsgInfo( "Excel") },; // ACTION para el 5 boton
{ || MsgInfo( "Imprimir") }},; // ACTION para el 6 boton
{ .F., .F., .F., .F., .F., .F. },; // GROUP para cada Boton
.F.,; // Si crea la barra en 2007
.T. ) // Si crea la en 3D
Barra de botones en la parte superior
Barra de botones en la parte inferior
Barra de botones en la parte izquierda
Barra de botones en la parte derecha
Barra de botones en la parte superior con GROUPs
Barra de botones en la parte superior con propiedad Toggle()
Barra de botones en la parte superior con menu popup.
Barra de botones en la parte superior estilo Office 2007
P.D Esta tarde despues de crear esta clase, he modificado la clase TPreview(), ya que no encontrado nada al respecto sobre nuevas modificaciones de esta clase. De momento he modificado/añadido lo siguiente:
- Mayor tamaño en los botones.
- ComboBox en la barra de botones para poder seleccionar las impresoras que se disponen en el sistema.
- Get ( ir a: ) en la barra de botones para poder indicarle a que pagina queremos ir.
- Un nuevo boton para la creacion de PDF, usando la DLL ImagePDF.
- Modificacion de Say que indica el numero de paginas/pagina actual que en ocasiones no se visualizaba.
- Modificacion del cursor Lupa.
A ver si tengo tiempo y le añado un monton de cosas que tengo pensadas que creo que seria interesante y si ha alguien le interesan estas modificaciones, publicare los fuentes tambien.
Imagen de las moficiaciones:
Espero que os sea de utilidad.
Un saludo
JLL