Page 1 of 1

ButtonBar

PostPosted: Sun May 03, 2015 7:35 pm
by colthop
Hola a todos:

Estoy implementando mis programas con las buttonbar, y me pasa lo siguiente:

Cuando pasa del menú principal a un menú de opciones, no puedo conseguir que se mantenga la letra inicial. Esta es la barra de menú de menú Principal:

Image

Y cuando entramos en una opción quito la BUTTONBAR con: "oVentPrinc:oBar:End()" y pongo la otra barra en la siguiente ventana y queda así:

Image

En vez de quedar como desearía y es:

Image

Esto lo consigo gracias a que en vez de eliminar la BUTTONBAR la oculto con oBar:Hide(). Me gustaría saber si se sigue entrando en opciones se sigan creando nuevas BUTTONBAR estas usan cada vez mas memoria y objetos o cuando la ocultas y creas otra la anterior se elimina.

Un saludo

Carlos

Re: ButtonBar

PostPosted: Sun May 03, 2015 8:06 pm
by colthop
Se me olvidaba:

He intentado quitar un botón de la ButtonBar con oBtn:End() y pese a que no funciona a partir de la instrucción no se quita la imagen de la pantalla y aparece como en segundo plano. Me podríais indicar coso se puede quitar.

Un saludo y gracias.

Carlos

Re: ButtonBar

PostPosted: Sun May 03, 2015 8:23 pm
by cnavarro
colthop wrote:Se me olvidaba:

He intentado quitar un botón de la ButtonBar con oBtn:End() y pese a que no funciona a partir de la instrucción no se quita la imagen de la pantalla y aparece como en segundo plano. Me podríais indicar coso se puede quitar.

Un saludo y gracias.

Carlos


Prueba a utilizar el Metodo: oBar:Del( nPos )

Re: ButtonBar

PostPosted: Sun May 03, 2015 9:21 pm
by colthop
Hola Cristóbal:

Ante todo gracias por tu interés y en un principio parece que funciona pero pasa una cosa extraña después y es lo siguiente cuando tengo siete botones y quito por ejemplo el 3 todos se mueven uno a la izquierda pero cuando paso el ratón por el tercero (que antes era el cuarto) vuelve a mostrar el botón que he quitado y esto solo pasa con la posición que he quitado el resto si quedan bien.

Un saludo

Carlos

Re: ButtonBar

PostPosted: Mon May 04, 2015 8:53 am
by Antonio Linares
Carlos,

Puedes proporcionar un ejemplo para probarlo aqui ? gracias

Re: ButtonBar

PostPosted: Mon May 04, 2015 9:25 am
by colthop
Hola Antonio:

Me es muy difícil en este momento ya que como no sabia como solucionarlo quite las dos BUTTONBAR y sus botones y lo estoy sustituyendo por RIBBONBAR.

Pero era muy sencillo de recrear era en una ventana inical con un menú y se creaba la BUTTONBAR
Pongamos:
Code: Select all  Expand view
     DEFINE WINDOW oVentPrinc MDI FROM 0, 0 TO 24,80;
        COLORS escri1, RGB (100, 10, 10);
        ICON "FyVWin.ico"
        SET FONT OF oVentPrinc TO oFont
        SET MESSAGE OF oVentPrinc TO LocaText( 1, 1,837) KEYBOARD CLOCK DATE 2007
        oVentPrinc:oMenu:End()
      ACTIVATE WINDOW oVentPrinc MAXIMIZED ON INIT pintboto() VALID ! GetKeyState (VK_ESCAPE)


En un principio quito el menú y ejecuto "PintBoto" para colocar las cosas en un orden y no este saltando en la pantalla las cosas

Code: Select all  Expand view
PROCEDURE pintboto()
oVentPrinc:SetMenu(MenuPrin())
if ! empty (oBar)
  oVentPrinc:oBar:End()
endif
if ! empty (oDlgwDat)
  oDlgwDat:End()
endif
DEFINE BUTTONBAR oBar  OF oVentPrinc PIXEL SIZE 80,80 2010

DEFINE BUTTON ...
DEFINE BUTTON ...

pintabaj()
oBar:SetFocus()
RETURN( NIL )


Todas las opciones del Menu llaman una función con dos variables Menu y Submenú para ejecuar lo deseado y antes poder poner la pantalla como quiero

Code: Select all  Expand view
Procedure OpciMenu(men,sumen,xOpc)
menu    = men
submenu = sumen
oDlgwDat:End()

aquí va una de estas dos lineas
oBar:End()
oVentPrinc:oBar:End()


oVentPrinc:oMenu:End()
oVentPrinc:SetFocus()
oVentPrinc:Refresh()
if xOpc = 1
  oBar:nheight:=20
  DatoSele(0)
else
  oBar:nheight:=50
endif
do case
   case menu = 1
       gestempr()
...
 


Y una vez entrado en GestEmpr creaba una MDICHILD para su gestión y otra BUTTONBAR de la ventana principal y es aquí cuando se ponía la letra mal o no. Incluso después cuando volvia a la pantalla principal estaba mal la letra.

Mas o menos es así espero que sirva.

Un saludo

Carlos