Barra de Botones

Barra de Botones

Postby colthop » Sat Dec 01, 2007 11:04 am

Hola a Todos:

Como puedo repintar una barra de botones en el menu principal ya que cuando lo hago me la pinta pero es como si estubiera desactivada.

Un saludo

Carlos
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Sat Dec 01, 2007 11:20 am

Carlos,

oWnd:oBar:Refresh()

Puedes publicar un pequeño ejemplo de como lo haces y el error que te da ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby colthop » Sat Dec 01, 2007 11:38 am

Hola Antonio:

No quiero refrescarla ya que lo que hago es quitarla, y volver a pintarla cuando regrese al menu principal.

Lo que hago es lo siguiente esta es la ventana principal:

DEFINE WINDOW oVentPrinc MDI FROM 0, 0 TO 24,80; // Se define la ventana principal
TITLE "CYEWIN Contabilidad y Estimaciones en WINDOWS"; //T¡tulo de la ventana
COLORS escri01, fondo01;
ICON "cyewin.ico"

SET FONT OF oVentPrinc TO oFont

repintar()

oPre:Show()

ACTIVATE WINDOW oVentPrinc MAXIMIZED

despues en repintar :

PROCEDURE repintar()
oVentPrinc:Setfocus()
if repin = 1
opre:End()
else
repin = 1
endif
public opre
DEFINE WINDOW opre MDICHILD OF oVentPrinc FROM 3,5 TO 9,93 TITLE "Datos de trabajo" color escri01, fondo01 STYLE nOr(WS_DLGFRAME)
@ 7, 10 SAY datt4 var " Persona o Entidad" OF opre PIXEL SIZE 120, 18 COLOR escri01, fondo01
@ 27, 10 SAY datt5 var " Nombre " OF opre PIXEL SIZE 80, 18 COLOR escri01, fondo01
@ 47, 10 SAY datt6 var " Ejercicio" OF opre PIXEL SIZE 80, 18 COLOR escri01, fondo01
@ 67, 10 SAY datt8 var " Fecha " OF opre PIXEL SIZE 80, 18 COLOR escri01, fondo01
@ 7,130 say dat01 var empr OF opre PIXEL SIZE 50, 18 COLOR escri03, fondo02 BORDER CENTER
@ 27, 80 say dat02 var " " + momb OF opre PIXEL SIZE 602, 18 COLOR escri03, fondo02 BORDER
@ 47, 80 say dat02 var ejer OF opre PIXEL SIZE 40, 18 COLOR escri03, fondo02 BORDER CENTER
@ 67, 80 say dat04 var dtoc(datita) OF opre PIXEL SIZE 75, 18 COLOR escri03, fondo02 BORDER CENTER
ACTIVATE WINDOW opre
SET MESSAGE OF oVentPrinc TO empr + " - " + momb + " Ejercicio : " + ejer + " Colt Hop ED., S.L." 2007 CLOCK KEYBOARD
oBarra()
oVentPrinc:SetMenu(PepePrin())
oVentPrinc:Refresh()
SysRefresh()
RETURN (NIL)

La llamada a la barra es oBarra() que es:

FUNCTION oBarra()
DEFINE BUTTONBAR oBar OF oVentPrinc PIXEL _3D SIZE 80,32 2007
@ 1, 0 BTNBMP oBot01 FILE "empresa.bmp" OF oBar WHEN .T. ACTION gestempr() SIZE 80,30 NO BORDER MESSAGE "Gestión de Personas y Entidades"
@ 1, 81 BTNBMP oBot02 FILE "diario.bmp" OF oBar WHEN .T. ACTION gestdiar(1) SIZE 80,30 NO BORDER MESSAGE "Asientos Comunes"
@ 1,162 BTNBMP oBot03 FILE "compras.bmp" OF oBar WHEN .T. ACTION gestfact(6) SIZE 80,30 NO BORDER MESSAGE "Compras y Gastos"
@ 1,243 BTNBMP oBot04 FILE "ventas.bmp" OF oBar WHEN .T. ACTION gestfact(7) SIZE 80,30 NO BORDER MESSAGE "Ventas e Ingresos"
@ 1,324 BTNBMP oBot05 FILE "modulos.bmp" OF oBar WHEN .T. ACTION gestmodu(5) SIZE 80,30 NO BORDER MESSAGE "Cálculo de Módulos"
@ 1,405 BTNBMP oBot06 FILE "regular.bmp" OF oBar WHEN .T. ACTION gestmodu(7) SIZE 80,30 NO BORDER MESSAGE "Cálculo de la Regularización"
@ 1,486 BTNBMP oBot07 FILE "cierres.bmp" OF oBar WHEN .T. ACTION gestcipe() SIZE 80,30 NO BORDER MESSAGE "Cierre Periódico"
@ 1,567 BUTTON oBot08 FILE "salida.bmp" OF oBar WHEN .T. ACTION salida() SIZE 80,30 NO BORDER MESSAGE "Salir"
RETURN (.T.)

y cuando entra en cualquier opcion hago quitmenu()

Procedure quitmenu()
oPre:Hide()
oVentPrinc:oBar:End()
oVentPrinc:oMenu:End()
oVentPrinc:SetFocus()
oVentPrinc:Refresh()
SysRefresh()
RETURN( .T. )

El funcionamiento sería:

Cuando entramos hace la ventana principal que llama a repintar() para poner en la ventana tres cosas, la primera una ventana con el usuario activo, 2 el menu principal y 3 la barra de botones con oBarra().

Cuando entra en una opcion del menu hace quitmenu() que lo que hace es eliminar el menu principal y la barra de botones para que no ocupen en la ventana ocultos.

Y Cuando sale vuelve a ponerlos con Repintar(), lo que hace ahora es poner bien el menu principal y la barra de botones la pone pero no esta activa se ven los botones pero cuando pinchas o pasas el raton por encima no hace nada.

Tambien he detectado una cosa muy rara yo el objeto que contiene el menu principal le he llamado oPepe1 dela siguiente manera:

STATIC FUNCTION PepePrin()
PUBLIC oPepe1 // Objeto que contendr  el Men£
MENU oPepe1 2007
MENUITEM "&Generales"
MENU
MENUITEM "Personas o Entidades" ;
ACTION gestempr();
MESSAGE "Gestión de los datos identificativos de las Personas o Entidades de la aplicaci¢n"
SEPARATOR

....
....

ENDMENU
ENDMENU
RETURN( oPepe1 )

Pero si te das cuenta en quitmenu() para borrar el menu principal he tenido que poner :

oVentPrinc:oMenu:End()

en vez de :

oVentPrinc:oPepe1:End()

Gracias por tu interes espero tu respuesta si la hay.

Un saludo

Carlos
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Sat Dec 01, 2007 11:41 am

Carlos,

Para quitarla puedes "ocultarla":

oWnd:oBar:Hide()

y cuando quieras mostrarla:

oWnd:oBar:Show()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby colthop » Sat Dec 01, 2007 12:03 pm

Hola Antonio ya estoy en las ultimas en este tema:

Bien en vez de destruir y volver a crear la oculto y la muestro pero para que no ocupe en la parte superior lo que hago es la oculto y la pongo abajo con :

oVentPrinc:oBar:Hide()
oVentPrinc:oBar:GoDown()

y a la hora de volver la muestro y la pongo arriba otra vez con:

oVentPrinc:oBar:GoTop()
oVentPrinc:oBar:Show()

pero me da un error este :

Application
===========
Path and name: C:\programa\cyewin\cyewin.exe (32 bits)
Size: 2,894,848 bytes
Time from start: 0 hours 0 mins 4 secs
Error occurred at: 01/12/2007, 13:01:38
Error description: Error BASE/1004 Class: 'NIL' has no exported method: GOTOP
Args:
[ 1] = U

Y pasa cuando vuleve de una opcion y no al principio cuando lo pongo la primera vez.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Sat Dec 01, 2007 12:14 pm

Carlos,

No la cambies de sitio, sino quítala de oWnd:oBar

oWnd:oBar:Hide()
oWnd:oBar := nil
oWnd:oTop := nil
...
oWnd:oBar = oBar // la variable que usastes para crearla ó una nueva
oWnd:oBar:Show()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby colthop » Sat Dec 01, 2007 2:34 pm

Hola Antonio:

Estoy con ello pero pasa lo mismo que cuando lo hacia antes, se pintan los botones pero se quedan como si estubieran DISABLED y no se pueden utilizar.

Esto lo hace correctamente ya que lo quita y lo oculta bien:
oWnd:oBar:Hide()
oWnd:oBar := nil
oWnd:oTop := nil

Pero cuando hace esto lo vuelve a poner y lo deja inactivo es como si faltara algo mas que poner algo como antes era NIL para quitar.

oWnd:oBar = oBar // la variable que usastes para crearla ó una nueva
oWnd:oBar:Show()

Un saludo

Carlos
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby colthop » Sat Dec 01, 2007 2:34 pm

Hola Antonio:

Estoy con ello pero pasa lo mismo que cuando lo hacia antes, se pintan los botones pero se quedan como si estubieran DISABLED y no se pueden utilizar.

Esto lo hace correctamente ya que lo quita y lo oculta bien:
oWnd:oBar:Hide()
oWnd:oBar := nil
oWnd:oTop := nil

Pero cuando hace esto lo vuelve a poner y lo deja inactivo es como si faltara algo mas que poner algo como antes era NIL para quitar.

oWnd:oBar = oBar // la variable que usastes para crearla ó una nueva
oWnd:oBar:Show()

Un saludo

Carlos
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Antonio Linares » Sat Dec 01, 2007 3:19 pm

Carlos,

Prueba solamente a hacerle :Hide() y más tarde :Show() y comprueba si funcionan los botones, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby colthop » Sat Dec 01, 2007 4:09 pm

Hola Antonio:

No se porque pero lo que interferia era la ventana que ponia el usuario la he quitado y los datos los he puesto en la barra de mensajes y ya funciona bien de las dos formas y como digo yo, si funciona no busques el porque ya que estas tardando en seguir, gracias por tu interes y ya comentare algo del menu del preview que no me sale pero como no sale no me importa me importa mas el terminar el resto.

Gracias

carlos
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 8 guests