FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Tratando de usar TRBBTN (No en RibbonBar)
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Tratando de usar TRBBTN (No en RibbonBar)

Posted: Wed Jun 29, 2011 03:59 AM

Hola amigos, es eso. He tratado de incorporar a una aplicaci贸n el bot贸n RRBTN pero no en una Ribbonbar, sino en un di谩logo desde recursos y tengo los siguientes inconvenientes que no he podido resolver:
1- Los botones se presentan bien (transparentes por defecto ya que el di谩logo es transparente y se ven como yo quiero). Con el mouse trabajan bien, pero al intentar moverme a travez de ellos con las direccionales, no funcionan, y m谩s bien desaparece su formato y re-aparecen los botones en formato TBUTTONBMP.

2- Tiene mucha relaci贸n con lo anterior, y es que no he podido hacerlos funcionar como un bot贸n corriente. Es decir, si le doy click no mantiene el foco y no puedo moverme entre ellos con las flechitas. No s茅 si su comportamiento es similar a los botones de la BUTTONBAR, los cuales no se pueden manejar con las teclas direccionales. FwxH 10.06

Espero haber sabido exponer mi necesidad, y solicito vuestra ayuda.

Saludos.

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Tratando de usar TRBBTN (No en RibbonBar)

Posted: Wed Jun 29, 2011 05:33 AM

Amigos, ya he solucionado el primer punto. (Custom Control TRBTN)
Ahora solo me faltar铆a hacerlos trabajar como el resto de botones:
a) Presentando el foco
b) Movi茅ndose entre ellos con las teclas direccionales 贸 TabStop.
Gracias.

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Tratando de usar TRBBTN (No en RibbonBar)

Posted: Wed Jun 29, 2011 03:39 PM
Amigos, disculpen mi insistencia. Como expuse anteriormente los RBTN ya me funcionan de manera genral, pero lo que necesito es que se comporten como BTNBMP o BUTTONBMP en los que se puede navegar entre ellos utilizando TabStop o las flechitas.

El c贸digo siguiente lo he construido tomando como base una soluci贸n que el amigo Daniel poste贸 aqu铆 en el foro, pero no me trabaja. 驴Qu茅 estoy haciendo mal?, 驴Qu茅 se puede hacer para los botones RBTN se comporten como los mencionados?
O acaso, 驴Se puede imitar la transparencia de los RBTN con BTNBMP o BUTTONBMP?
Bueno... si no hay soluci贸n para esto, tendr茅 que seguir utilizando BUTTONBMP a costa de sacrificar una presentaci贸n "m谩s profesional"

Gracias de antemano.


Code (fw): Select all Collapse
#include "FiveWin.ch"
#include "ribbon.ch"

//------------------------------
FUNCTION Transacc()
LOCAL oDlg, oBrush,n
local oBorrar,oBusca,oImpri
local oDoc1,oDoc2,oDoc3,oDoc4,oDoc5,oDoc6,oDoc8, oCata,oCons

  DEFINE BRUSH oBrush FILENAME ".\stone.bmp"

  DEFINE DIALOG oDlg RESOURCE "Grabar2" ;
         TITLE "Prueba mov TRBTN con tabstop o teclas direcc";
         BRUSH oBrush TRANSPARENT


  REDEFINE RBBTN oCata   ID 175 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT  ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oCons   ID 176 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT  ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oBorrar ID 231 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT  ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oBusca  ID 233 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT  ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oImpri Prompt "Reportes " ID 234 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT  ACTION ( Msginfo("hola") )

  REDEFINE RBBTN oDoc1 ID 221 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oDoc2 ID 222 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oDoc3 ID 223 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oDoc4 ID 224 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oDoc5 ID 225 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oDoc6 ID 226 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
  REDEFINE RBBTN oDoc8 ID 228 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( oDlg:End() )

For n:=1 to len(oDlg:aControls)
  if oDlg:aControls[n]:ClassName() ="TRBTN"
     oDlg:aControls[n]:nDlgCode  = DLGC_WANTALLKEYS
  endif
Next

  ACTIVATE DIALOG oDlg CENTERED  ;
       ON INIT  BotsRBBTN(oDlg) 

  oBrush:End()
RETURN NIL

//0000000000
//----------------------//
Function BotsRBBTN(oDlg)
local n

For n:=1 to len(oDlg:aControls)
  if oDlg:aControls[n]:ClassName() ="TRBTN"
     __ChangeStyleWindow( oDlg:aControls[n]:hWnd, WS_TABSTOP ) 
     oDlg:aControls[n]:bGotFocus  = btnGotFocus( oDlg:aControls[n] )
     oDlg:aControls[n]:bLostFocus  = btnLostFocus( oDlg:aControls[n] )
  endif
Next
return nil

//----------------------
FUNCTION btnGotFocus( o )
 return {|| o:aGradiant :=  { { 1/3, nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ) }, ;
                              { 2/3, nRGB( 255, 215,  84 ), nRGB( 255, 233, 162 ) } },;
                                DeleteObject( o:hBack ),;
                                o:hBack := NIL,;
                                o:Refresh() }
//-------------------------
FUNCTION btnLostFocus( o )
local CLR_GRAD1 :=  nRGB( 236, 245, 255 )
local CLR_GRAD2 :=  nRGB( 185, 218, 255 )
local CLR_GRAD3 :=  nRGB( 159, 207, 255 )
local CLR_GRAD4 :=  nRGB(   0, 111, 221 )

 return {|| o:aGradiant := { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                              { 2/3, CLR_GRAD3, CLR_GRAD4 } },;
                                DeleteObject( o:hBack ),;
                                o:hBack := NIL,;
                                o:Refresh() }                                

//AQUI, EL .RC

// RESOURCE SCRIPT generated by "Pelles C for Windows, version 6.00".

//#include <windows.h>
//#include <commctrl.h>
//#include <richedit.h>

LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US

GRABAR2 DIALOG FIXED IMPURE 7, -49, 511, 293
STYLE WS_POPUP|WS_THICKFRAME|WS_CAPTION|WS_MAXIMIZEBOX|WS_VISIBLE
CAPTION "Grabacion de Documentos"
FONT 8, "MS Sans Serif"
{
  CONTROL "C/Diario", 221, "TRBTN", WS_TABSTOP, 2, 24, 62, 26
  CONTROL "Rec/Caj", 222, "TRBTN", WS_TABSTOP, 66, 24, 62, 26
  CONTROL "Depositos", 223, "TRBTN", WS_TABSTOP, 130, 24, 62, 26
  CONTROL "Cheques", 224, "TRBTN", WS_TABSTOP, 194, 24, 62, 26
  CONTROL "Rec/Caja", 225, "TRBTN", WS_TABSTOP, 258, 24, 62, 26
  CONTROL "Notas DC", 226, "TRBTN", WS_TABSTOP, 322, 24, 62, 26
  CONTROL "Salir", 228, "TRBTN", WS_TABSTOP, 448, 24, 62, 26
  CONTROL "Catalogo", 175, "TRBTN", WS_TABSTOP, 384, 0, 62, 22
  CONTROL "Consultas", 176, "TRBTN", WS_TABSTOP, 448, 0, 62, 22
  CONTROL "Borrar", 231, "TRBTN", WS_TABSTOP, 2, 264, 62, 26
  CONTROL "Buscar", 233, "TRBTN", WS_TABSTOP, 66, 264, 62, 26
  CONTROL "&Reportes", 234, "TRBTN", WS_TABSTOP, 130, 264, 62, 26
}
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion