Necessito trabjar com el xBrowse == ao twbrowse de Hernan; explico:
Quero el xbrowse com MultiSelec e Bitmaps, assim:
Mas, meu bitmap no esta ligado a nenhuno campo del DBF, es apenas um Bitmap, q basta uno click com el mouse para mudar el Bmp e selecionar el Linha.
E me retorna uno valor, para yo saber quais linhas estao selecionadas.
Es possible com xbrowse, isto ???
Es possible me apresentar uno exemplo simple ???
saludos Ale
xBrowse Multiselect == Twbrowse H.C.
xBrowse Multiselect == Twbrowse H.C.
aleseribeli@hotmail.com
FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Con XBrowse se puede hacer. Os "entresaco" el código que utilizo. Al clickar
con el botón derecho del ratón el registro se vuelve de color amarillo y se activa
un icono a su izquierda. Igualmente el array aSeleccion contiene algunos datos del registro
y el array aSele contiene el número de registro
Saludos,
Manuel
Las mismas funciones son válidas para un LISTBOX
con el botón derecho del ratón el registro se vuelve de color amarillo y se activa
un icono a su izquierda. Igualmente el array aSeleccion contiene algunos datos del registro
y el array aSele contiene el número de registro
Saludos,
Manuel
Code: Select all
..................
STATIC aSeleccion,aSele
.................
Local oLbx
//
oLbx := TXBrowse():New(oDlg)
oLbx:CreateFromResource(200)
oLbx:nFreeze := 4
oLbx:bClrStd := { || {CLR_BLACK,SelColor2(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ),CLR_WHITE } }
//
oCol := oLbx:AddCol()
oCol:AddResource("LEVELB")
oCol:AddResource("LEVELR")
oCol:bBmpData := { || IIF(ASCAN(aSeleccion,EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre)=0,1,2 ) }
oCol:cHeader := "S"
AADD(aCols,1)
//
oCol := oLbx:AddCol()
oCol:bStrData := { || EMPRESAS->Numcliente}
oCol:cHeader := "Núm.")
oCol:oDataFont := oFont1
AADD(aCols,2)
//
oCol := oLbx:AddCol()
oCol:bStrData := { || SUBSTR(EMPRESAS->Nombre,1,35)}
oCol:cHeader := " Nombre o razón social"
oCol:oDataFont := oFont1
AADD(aCols,3)
.....................................
.....................................
//
for nFor := 1 to len(aCols)
oLbx:aCols[ nFor ]:blDClickData := {|| (Empresas(oLbx,"Ver/Modificar datos",.F.,nSerie),oLbx:Refresh()) }
oLbx:aCols[ nFor ]:bRClickData := {|| (ESeleccionar(oLbx),oLbx:refresh(),IIF(LEN(aSeleccion) > 0,oBtn7:enable(),oBtn7:disable()) ) }
oLbx:aCols[ nFor ]:bRClickHeader := {|r,c,f,o| NIL }
next
//
**********************************
STATIC FUNCTION ESELECCIONAR(oLbx)
**********************************
Local nPos
Local nPos2
nPos := AScan(aSeleccion, EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre)
nPos2:= AScan(aSele, EMPRESAS->(Recno()))
//
IF nPos # 0 // quita la marca si ya la tiene
ADel(aSeleccion, nPos)
ASize(aSeleccion, Len(aSeleccion)-1)
ELSE
AAdd(aSeleccion, EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre) // pone la marca
ENDIF
//
IF nPos2 # 0 // quita la marca si ya la tiene
ADel(aSele, nPos)
ASize(aSele, Len(aSele)-1)
ELSE
AAdd(aSele, EMPRESAS->(Recno())) // pone la marca
ENDIF
//
RETURN NIL
*************************************
FUNCTION SELCOLOR2( cItem, aSeleccion )
*************************************
local nColor := CLR_WHITE
local nPos
nPos := AScan(aSeleccion, cItem)
//
IF nPos # 0
cItem = aSeleccion [nPos]
nColor = CLR_YELLOW
ENDIF
//
RETURN nColor
Code: Select all
REDEFINE LISTBOX oLbx ;
FIELDS IIF(ASCAN(aSeleccion,EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre)=0," ",aLevel[ 2 ] ),;
" "+EMPRESAS->NumCliente+" ",;
" "+EMPRESAS->Nombre;
FIELDSIZES 13,40,250;
HEADERS "S"," Núm."," Nombre o Razón Social");
ID 200;
FONT oFont1;
COLOR rgb(0,0,0),rgb(255,234,175);
ON RIGHT CLICK (ESeleccionar(oLbx),oLbx:refresh(),IIF(LEN(aSeleccion) > 0,oBtn7:enable(),oBtn7:disable()) );
ON LEFT DBLCLICK Empresas(oLbx,"Ver/Modificar datos",.F.,nSerie); // Al doble click se editar el registro
OF oDlg
oLbx:nClrText := { || SelColor(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ) }
oLbx:nClrPane := { || SelColor3(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ) }
oLbx:nClrForeFocus:= { || SelColor2(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ) }
Gracias Manuel por el ejemplo, mas, ainda no estoy conseguindo montar el Prg.
Es possible postar uno ejemplo, na Pratica com uno DBF e uno EXE, para un mejor entendimento ???
Gracias pela ajuda.
Saludos Ale
Es possible postar uno ejemplo, na Pratica com uno DBF e uno EXE, para un mejor entendimento ???
Gracias pela ajuda.
Saludos Ale
aleseribeli@hotmail.com
FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Perfect Manuel, Gracias,
Muito bom este ejemplo.
Saluds Ale
Muito bom este ejemplo.
Saluds Ale
aleseribeli@hotmail.com
FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: xBrowse Multiselect == Twbrowse H.C.
Muy buenas a todos:
¿ Alguien conserva por ahí el fichero ejemplo.zip ?
Lo he perdido y me gustaría recuperarlo.
Gracias.
¿ Alguien conserva por ahí el fichero ejemplo.zip ?
Lo he perdido y me gustaría recuperarlo.
Gracias.
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC