Hola a todos
En el caso de ser posible, alguno de uds tendra un pequeño ejemplo para incrustar ya sea un checkbox o un bitmap en un browse ( de Hernan ) ?
Agradeceria mucho cualquier apoyo.
Saludos
CheckBox o BitMap en TWBrowse
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
CheckBox o BitMap en TWBrowse
FWH 10.6 + xHarbour + Borland 582
Raymundo:
Aqui esta el ejemplo que encontre:
Debe funcionar con xHarbour, yo uso Harbour, ademas debe
compilar tMultisel.prg que viene con la Twbrowse de Hernan
#include "FiveWin.ch"
#include "wcolors.ch"
////////////////////////////////////////////////////////////////////////////////
// Bienvenidos al Sample02 de Seleccion TWBrowse Multiple.
// Veremos un ejemplo un poco mas complejo, con el uso de BitMaps.
////////////////////////////////////////////////////////////////////////////////
#define ENTERPRISE
//----------------------------------------------------------------------------//
Function Main()
LOCAL oDlg, oLbx
LOCAL oFont, oMultiSel, oBmpOn, oBmpOff
USE Equipos ALIAS Datos
DEFINE BITMAP oBmpOn FILE "checkon.bmp"
DEFINE BITMAP oBmpOff FILE "checkoff.bmp"
DEFINE FONT oFont NAME 'MS Sans Serif' SIZE 0,-8
DEFINE DIALOG oDlg FROM 0,0 TO 15,45 ;
TITLE "TWBrowse + TMultiSel Engine" ;
FONT oFont
oDlg:nStyle:= nOr( oDlg:nStyle, 4 ) // Pongo 3D Nativo
@00,03 SAY 'Futbol Argentino' OF oDlg
#ifdef ENTERPRISE
TWBrowse():lHScroll:= .f. // Sin Scroll Horizontal para la variable
#endif // de la clase.
@01,01 LISTBOX oLbx ;
FIELDS If( oMultiSel:lSelect, oBmpOn, oBmpOff ):hBmpPal,;
DATOS->Equipo ;
HEADERS "","" SIZE 95,87 OF oDlg
oMultiSel:= TMultiSel():New( oLbx )
@20,110 BUTTON "Select &All" OF oDlg SIZE 40,Nil PIXEL ;
ACTION oMultiSel:SelectAll()
@40,110 BUTTON "UnSelect &All" OF oDlg SIZE 40,Nil PIXEL ;
ACTION oMultiSel:UnSelectAll()
@60,110 BUTTON "&Reverse" OF oDlg SIZE 40,Nil PIXEL ;
ACTION oMultiSel:Reverse()
@90,110 BUTTON "&Ver Seleccion" OF oDlg SIZE 40,Nil PIXEL ;
ACTION VerSeleccion( oMultiSel )
ACTIVATE DIALOG oDlg CENTERED
RELEASE BITMAP oBmpOn, oBmpOff
RELEASE FONT oFont
return Nil
//----------------------------------------------------------------------------//
STATIC Function VerSeleccion( oMultiSel )
LOCAL cMsg:= "Estan seleccionados todos los registros"
LOCAL nLen:= Len( oMultiSel:aRecNo )
LOCAL cLen:= " ( " + AllTrim(Str(nLen)) + " son )"
If oMultiSel:lSelectAll
If nLen == 0
cMsg+= "."
Else
cMsg+= CRLF + "MENOS los de la matriz oMultiSel:aRecNo." +cLen
EndIf
Else
If nLen == 0
cMsg:= "NO HAY registros seleccionados."
Else
cMsg+= " de la matriz oMultiSel:aRecNo." + cLen
EndIf
EndIf
MsgAlert( cMsg )
MemoSeleccion( oMultiSel )
return Nil
//----------------------------------------------------------------------------//
STATIC Function MemoSeleccion( oMultiSel )
LOCAL cMemo:= 'Estos son los Items Seleccionados:' + CRLF +;
'==================================' + CRLF + CRLF
LOCAL nLen:= Len( cMemo ), lHeader:= .f.
LOCAL nRecNo:= RecNo()
DbGoTop()
While !Eof()
If oMultiSel:IsSelect( RecNo() )
If !lHeader
cMemo+= "RecNo() Equipo" + CRLF + ;
"======= ====================================" + CRLF
lHeader:= .t.
EndIf
cMemo+= StrZero(RecNo(),7) + " "+ Field->Equipo + CRLF
EndIf
DbSkip()
EndDo
If Len( cMemo ) == nLen
cMemo+= "NO HAY ITEMS SELECCIONADOS !!!!" + CRLF
EndIf
DbGoto( nRecNo )
MemoEdit( cMemo )
return Nil
//----------------------------------------------------------------------------//
Saludos..
Ruben Fernandez.
Aqui esta el ejemplo que encontre:
Debe funcionar con xHarbour, yo uso Harbour, ademas debe
compilar tMultisel.prg que viene con la Twbrowse de Hernan
#include "FiveWin.ch"
#include "wcolors.ch"
////////////////////////////////////////////////////////////////////////////////
// Bienvenidos al Sample02 de Seleccion TWBrowse Multiple.
// Veremos un ejemplo un poco mas complejo, con el uso de BitMaps.
////////////////////////////////////////////////////////////////////////////////
#define ENTERPRISE
//----------------------------------------------------------------------------//
Function Main()
LOCAL oDlg, oLbx
LOCAL oFont, oMultiSel, oBmpOn, oBmpOff
USE Equipos ALIAS Datos
DEFINE BITMAP oBmpOn FILE "checkon.bmp"
DEFINE BITMAP oBmpOff FILE "checkoff.bmp"
DEFINE FONT oFont NAME 'MS Sans Serif' SIZE 0,-8
DEFINE DIALOG oDlg FROM 0,0 TO 15,45 ;
TITLE "TWBrowse + TMultiSel Engine" ;
FONT oFont
oDlg:nStyle:= nOr( oDlg:nStyle, 4 ) // Pongo 3D Nativo
@00,03 SAY 'Futbol Argentino' OF oDlg
#ifdef ENTERPRISE
TWBrowse():lHScroll:= .f. // Sin Scroll Horizontal para la variable
#endif // de la clase.
@01,01 LISTBOX oLbx ;
FIELDS If( oMultiSel:lSelect, oBmpOn, oBmpOff ):hBmpPal,;
DATOS->Equipo ;
HEADERS "","" SIZE 95,87 OF oDlg
oMultiSel:= TMultiSel():New( oLbx )
@20,110 BUTTON "Select &All" OF oDlg SIZE 40,Nil PIXEL ;
ACTION oMultiSel:SelectAll()
@40,110 BUTTON "UnSelect &All" OF oDlg SIZE 40,Nil PIXEL ;
ACTION oMultiSel:UnSelectAll()
@60,110 BUTTON "&Reverse" OF oDlg SIZE 40,Nil PIXEL ;
ACTION oMultiSel:Reverse()
@90,110 BUTTON "&Ver Seleccion" OF oDlg SIZE 40,Nil PIXEL ;
ACTION VerSeleccion( oMultiSel )
ACTIVATE DIALOG oDlg CENTERED
RELEASE BITMAP oBmpOn, oBmpOff
RELEASE FONT oFont
return Nil
//----------------------------------------------------------------------------//
STATIC Function VerSeleccion( oMultiSel )
LOCAL cMsg:= "Estan seleccionados todos los registros"
LOCAL nLen:= Len( oMultiSel:aRecNo )
LOCAL cLen:= " ( " + AllTrim(Str(nLen)) + " son )"
If oMultiSel:lSelectAll
If nLen == 0
cMsg+= "."
Else
cMsg+= CRLF + "MENOS los de la matriz oMultiSel:aRecNo." +cLen
EndIf
Else
If nLen == 0
cMsg:= "NO HAY registros seleccionados."
Else
cMsg+= " de la matriz oMultiSel:aRecNo." + cLen
EndIf
EndIf
MsgAlert( cMsg )
MemoSeleccion( oMultiSel )
return Nil
//----------------------------------------------------------------------------//
STATIC Function MemoSeleccion( oMultiSel )
LOCAL cMemo:= 'Estos son los Items Seleccionados:' + CRLF +;
'==================================' + CRLF + CRLF
LOCAL nLen:= Len( cMemo ), lHeader:= .f.
LOCAL nRecNo:= RecNo()
DbGoTop()
While !Eof()
If oMultiSel:IsSelect( RecNo() )
If !lHeader
cMemo+= "RecNo() Equipo" + CRLF + ;
"======= ====================================" + CRLF
lHeader:= .t.
EndIf
cMemo+= StrZero(RecNo(),7) + " "+ Field->Equipo + CRLF
EndIf
DbSkip()
EndDo
If Len( cMemo ) == nLen
cMemo+= "NO HAY ITEMS SELECCIONADOS !!!!" + CRLF
EndIf
DbGoto( nRecNo )
MemoEdit( cMemo )
return Nil
//----------------------------------------------------------------------------//
Saludos..
Ruben Fernandez.
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Se hace exactamente igual a como se hace con un TWBrowse normalito
/
/
Code: Select all
* cargas los bitmaps de los check */
hCheck := LoadBitmap(GetResources(),"check")
hunCheck := LoadBitmap(GetResources(),"uncheck")
DEFINE DIALOG oDlg.....
....
....
REDEFINE LISTBOX oBrw FIELDS
IIF(alias->campo ==.T.,hCheck,hUnCheck),;
alias-> otro camo;
HEADERS "","Name:" ID 103 OF oDlg UPDATE
...
.....
Saludos
R.F.
R.F.
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
lo mismo pero en xbrowse
Amigos me gustaria hacer lo mismo pero en un xbrowse alguien me puede indicar como hacerlo.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Hola Leandro
El ejemplo que expuso el Master Flores, trabajo perfecto en el TWBrowse de Hernan ( es el que uso ), no he usado el xBrowse, pero en la carpeta de samples, esta el archivo TESTXBRW.PRG y ahi estan muchas opciones y formas incluyendo la del bitmap.
Saludos
El ejemplo que expuso el Master Flores, trabajo perfecto en el TWBrowse de Hernan ( es el que uso ), no he usado el xBrowse, pero en la carpeta de samples, esta el archivo TESTXBRW.PRG y ahi estan muchas opciones y formas incluyendo la del bitmap.
Saludos
FWH 10.6 + xHarbour + Borland 582
- carlos vargas
- Posts: 1421
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Leandro
aca algo similar, lo que faltaria es evaluar el click en el browse, sobrfe que col esta sucediendo para realizar el cambio.
salu2
carlos vargas
aca algo similar, lo que faltaria es evaluar el click en el browse, sobrfe que col esta sucediendo para realizar el cambio.
Code: Select all
WITH OBJECT ( oBrw := TXBrowse():new( oDlg ) )
:CreateFromResource( 101 )
:cAlias := "clie"
:nColDividerStyle := LINESTYLE_DARKGRAY
:nRowDividerStyle := LINESTYLE_DARKGRAY
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:lAllowRowSizing := FALSE
:lRecordSelector := TRUE
:bClrHeader := { || { CLR_BLUE, GetSysColor( COLOR_BTNFACE ) } }
:bLDblClick := { || CClienteEditar( .F. ) }
:nFreeze := 5
/*redefine columnas del browse*/
WITH OBJECT ( oCol := :AddCol() )
:cHeader := "Codigo"
:bStrData := { || clie->codigo }
:bClrStd := { || { CLR_BLUE, CLR_HGRAY } }
:nWidth := 80
END
WITH OBJECT ( oCol := :AddCol() )
:cHeader := "Nombre"
:bStrData := { || clie->nombre }
:nWidth := 240
END
WITH OBJECT ( oCol := :AddCol() )
:cHeader := "Telefono"
:bStrData := { || clie->telefono }
:nWidth := 080
END
WITH OBJECT ( oCol := :AddCol() )
:cHeader := "Saldo C$"
:bStrData := { || Transform( clie->saldo, "999,999.99" ) }
:bClrStd := { || { CLR_RED, RGB(255,255,230) } }
:nWidth := 070
:nHeadStrAlign := AL_RIGHT
:nDataStrAlign := AL_RIGHT
END
//aca el bitmap
WITH OBJECT ( oCol := :AddCol() )
:AddResource("B_CHKON")
:AddResource("B_CHKOFF")
:cHeader := "Activo"
:bBmpData := { || iif( clie->activo, 1, 2 ) }
:nWidth := 060
:nHeadStrAlign := AL_CENTER
:nDataBmpAlign := AL_CENTER
END
END
salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)