Borde de TBar

Borde de TBar

Postby cnavarro » Fri May 31, 2013 10:47 am

Buenos dias
Se puede eliminar el borde negro que aparece en un TBar() ?

Code: Select all  Expand view

        oBar1 := TBar():NewAt( 2, 2, 110, 22, 16, 16, oBar, .F. , , )

        //oBar1:l2007   := .T.       //2010

        oBar1:nStyle      -= WS_BORDER

        oBar1:SetColor( RGB( 240, 240, 240 ), RGB(240, 240, 240 ) )
        oBar1:SetBrush( oBrush )
        oBar1:bRClicked  := { || .T. }
 


Asi, no funciona, ni poniendo el Brush, y color del mismo fondo que tiene el dialogo
He buscado por el foro y aqui se realizaba la misma pregunta

http://forums.fivetechsupport.com/viewtopic.php?f=3&t=26295&p=144661&hilit=border+TBar#p144661

Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borde de TBar

Postby RenOmaS » Fri May 31, 2013 7:27 pm

Buenas

Puedes experimentar utilizar
Code: Select all  Expand view

ACTIVATE ...... ON INIT SetWindowLong( oBar1:hWnd, GWL_STYLE,;
                     nAnd( GetWindowLong( oBar1:hWnd, GWL_STYLE ), WS_BORDER) )
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: Borde de TBar

Postby cnavarro » Fri May 31, 2013 8:26 pm

Buenas noches

He puesto:

#define GWL_STYLE -16

Es correcto?
Efectivamente, me quita el Borde, pero tambien me borra los botones

Se me olvida alguna cosa?
Gracias por tu interés y tiempo
Saludos
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borde de TBar

Postby FranciscoA » Fri May 31, 2013 8:37 pm

Cristobal.
Si haces este pequeña modificacion en la Class TBar, puedes lograrlo.
Code: Select all  Expand view

DATA   lBorder   //FranciscoA May, 31/2013

METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CLASS TBar    //FranciscoA May, 31/2013

   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, nHeight := BAR_HEIGHT,;
           l3D := .f., cMode := "TOP", lBorder := .t.    //FranciscoA May, 31/2013

   //::nStyle      = nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN )
  ::nStyle      = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ), nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )  //FranciscoA May, 31/2013

//************************************************************************
La llamada sería:
   ACTIVATE DIALOG oDlg CENTERED ;
        ON INIT ( CreaBar(oBar,oDlg) )
return nil

function CreaBar(oBar,oDlg)
   oBar:=TBar():NewAt(20,360,200,28,28,28,oDlg,.f.,,,.f.)

   DEFINE BUTTON PROMPT "X1" OF oBar ACTION MsgInfo("hola") NOBORDER
   DEFINE BUTTON PROMPT "X2" OF oBar ACTION MsgInfo("hola de nuevo") NOBORDER

  // oBar:l2010 := .t.
  oBar:SetColor( 0, nRGB( 207, 221, 239 ) )   //tu color

return nil
 

Espero te sirva.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Borde de TBar

Postby cnavarro » Sat Jun 01, 2013 5:45 pm

Muchas gracias Francisco
Al final he optado por hacer una clases derivada de TBar siguiendo tus lineas
Code: Select all  Expand view

CLASS TBarC FROM TBar

CLASSDATA lRegistered AS LOGICAL  
DATA lBorder

METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, l2010,;
            lBorder, bGrad ) CONSTRUCTOR
           
METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CONSTRUCTOR
                                 //Francisco A May, 31/2013
ENDCLASS


METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, l2010,;
            lBorder ) CLASS TBarC

   local oRect

   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, l3D := .f., cMode := "TOP", l2007 := .F.,;
           l2010 := .F., lBorder := .F.
           
   oRect = oWnd:GetCliRect()        

   ::nStyle = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ),;
                          nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )

    ::lBorder  = lBorder

.../...

.../...



METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CLASS TBarC
   local oRect
   
   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, nHeight := BAR_HEIGHT,;
           l3D := .f., cMode := "TOP", lBorder := .f.    //FranciscoA May, 31/2013

   oRect = oWnd:GetCliRect()
   
  ::nStyle = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ),;
                          nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )
   
   ::lBorder     = lBorder

    .../...

 


Un saludo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borde de TBar

Postby horacio » Sat Jun 01, 2013 8:20 pm

Muy interesante la solución de Cristóbal ...

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Borde de TBar

Postby cnavarro » Mon Jun 03, 2013 1:28 pm

Horacio
La idea es de Francisco
Como ya he mencionado en otro post, desde que empecé con FW, nunca he modificado las clases originales que aparecen en FW.
Prefiero crear clases propias heredadas de las originales con las modificaciones que necesito, así, si estas modificaciones aparecen en versiones posteriores, lo único que tengo que hacer es eliminar ese método "propio" de mi clase, hasta que pueda llegar a "eliminar" mis clases propias y usar las standard, que sería lo ideal, aunque comprendo que es muy dificil tener en cuenta las necesidades e ideas de cada uno de nosotros.
De esta manera también puedo usar las clases originales si las necesito y evaluar las que aparecen en nuevas versiones (cuando puedo actualizarme, claro :cry: )
Un saludo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borde de TBar

Postby horacio » Mon Jun 03, 2013 1:56 pm

Cristóbal, sé que la solución a tu inquietud la resolvió Francisco pero me gustó como lo implementaste. Yo también he eliminado el borde en TBar, pero modificando la clase. Hacerlo como una clase derivada, además de ser practico, ya que no la modificamos, es muy elegante.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Borde de TBar

Postby cnavarro » Sun Jul 20, 2014 9:45 am

cnavarro wrote:Muchas gracias Francisco
Al final he optado por hacer una clases derivada de TBar siguiendo tus lineas
Code: Select all  Expand view

CLASS TBarC FROM TBar

CLASSDATA lRegistered AS LOGICAL  
DATA lBorder

METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, l2010, l2013,;
            lBorder, bGrad ) CONSTRUCTOR
           
METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CONSTRUCTOR
                                 //Francisco A May, 31/2013
ENDCLASS


METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, l2010,;
            lBorder ) CLASS TBarC

   local oRect

   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, l3D := .f., cMode := "TOP", l2007 := .F.,;
           l2010 := .F., lBorder := .F.
           
   oRect = oWnd:GetCliRect()        

   ::nStyle = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ),;
                          nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )

    ::lBorder  = lBorder

.../...

.../...



METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CLASS TBarC
   local oRect
   
   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, nHeight := BAR_HEIGHT,;
           l3D := .f., cMode := "TOP", lBorder := .f.    //FranciscoA May, 31/2013

   oRect = oWnd:GetCliRect()
   
  ::nStyle = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ),;
                          nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )
   
   ::lBorder     = lBorder

    .../...

 


Un saludo



Antonio, podría ser posible añadirlo a FWH?
Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borde de TBar

Postby cnavarro » Sun Oct 19, 2014 1:19 pm

cnavarro wrote:
cnavarro wrote:Muchas gracias Francisco
Al final he optado por hacer una clases derivada de TBar siguiendo tus lineas
Code: Select all  Expand view

CLASS TBarC FROM TBar

CLASSDATA lRegistered AS LOGICAL  
DATA lBorder

METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, l2010, l2013,;
            lBorder, bGrad ) CONSTRUCTOR
           
METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CONSTRUCTOR
                                 //Francisco A May, 31/2013
ENDCLASS


METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, l2010,;
            lBorder ) CLASS TBarC

   local oRect

   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, l3D := .f., cMode := "TOP", l2007 := .F.,;
           l2010 := .F., lBorder := .F.
           
   oRect = oWnd:GetCliRect()        

   ::nStyle = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ),;
                          nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )

    ::lBorder  = lBorder

.../...

.../...



METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
              cMode, oCursor, lBorder ) CLASS TBarC
   local oRect
   
   DEFAULT oWnd := GetWndDefault(), nBtnWidth := BAR_HEIGHT,;
           nBtnHeight := BAR_HEIGHT, nHeight := BAR_HEIGHT,;
           l3D := .f., cMode := "TOP", lBorder := .f.    //FranciscoA May, 31/2013

   oRect = oWnd:GetCliRect()
   
  ::nStyle = if( lBorder, nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ),;
                          nOR( WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN ) )
   
   ::lBorder     = lBorder

    .../...

 


Un saludo



Antonio, podría ser posible añadirlo a FWH?
Gracias


++1
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borde de TBar

Postby Antonio Linares » Sun Oct 19, 2014 6:53 pm

Implementado para FWH 14.09, gracias! :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 7 guests