Bitmap en TSBrowse

Bitmap en TSBrowse

Postby JoseGS » Sun Sep 13, 2009 4:09 am

Hola amigos:

Cuando tenia mi aplicacion en FW23 hacia lo siguiente para mostrar bitmap en celdas del TSBrowse:

[url][/url]ADD COLUMN TO oBrw2 BITMAP DATA SIMBOLOS('INVSTATUS') HEADER 'ST' SIZE 25 NOHILITE

Pero al hacerlo ahora via FWH la clase TSBrowse me envia el siguiente error:
Message not found: TSBROWSE:ADDCOL

Alguien tiene alguna idea de como puedo hacer esto ahora en FWH ?

Gracias
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Bitmap en TSBrowse

Postby mmercado » Sun Sep 13, 2009 6:31 am

Hola JoseGS:
JoseGS wrote:Pero al hacerlo ahora via FWH la clase TSBrowse me envia el siguiente error:
Message not found: TSBROWSE:ADDCOL

Muéstrame por favor el error.log completo así como la parte de tu código donde defines el browse y sus columnas. También dime que devuelve la función SIMBOLOS('INVSTATUS')

Saludos.

Manuel Mercado.
manuelmercado at prodigy dot net dot mx
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Bitmap en TSBrowse

Postby JoseGS » Sun Sep 13, 2009 3:03 pm

ERROR.LOG

Application
===========
Path and name: C:\MEDICKEY\MEDICKEY.exe (32 bits)
Size: 3,226,624 bytes
Time from start: 0 hours 0 mins 3 secs
Error occurred at: 13/09/2009, 09:55:53
Error description: Error BASE/1004 Message not found: TSBROWSE:ADDCOL

Stack Calls
===========
Called from: tobject.prg => TSBROWSE:ERROR(172)
Called from: tobject.prg => TSBROWSE:MSGNOTFOUND(205)
Called from: tobject.prg => TSBROWSE:ADDCOL(0)
Called from: XBROWSE.PRG => XBRWADDCOLUMN(0)
Called from: MEDICKEY.prg => INVENT(837)
Called from: MEDICKEY.prg => (b)MAIN(393)
Called from: OUTLOOK.PRG => (b)TOUTLOOK:ADDITEM(0)
Called from: WINDOW.PRG => TWINDOW:LBUTTONUP(0)
Called from: CONTROL.PRG => TSAY:LBUTTONUP(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.PRG => TCONTROL:HANDLEEVENT(0)
Called from: SAY.PRG => TSAY:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TWINDOW:ACTIVATE(0)
Called from: MEDICKEY.prg => MAIN(466)

System
======
CPU type: Intel(R) Pentium(R) M processor 1.10GHz 600 Mhz
Hardware memory: 1023 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6095)
Windows version: 5.1, Build 2600 Service Pack 2

Windows total applications running: 43
1 M
2 Default IME
3 SysFader
4 CiceroUIWndFrame
5 Maximize to current monitor
6 TF_FloatingLangBar_WndTitle
7 MedicKey VER 9.6.6 13/09/2009 (Ultimo acceso 13/09/2009 0 dias) #Serie: 12345
8 C:\WINDOWS\system32\cmd.exe
9 TextPad - [C:\MEDICKEY\MEDICKEY.PRG]
10 www.FiveTechSoft.com • Ver Tema - Bitmap en TSBrowse - Microsoft Internet Explorer
11 DDE Server Window
12 MCI command handling window
13 Connection in progress
14 Internet Connections
15 Mobile PhoneTools
16 Cannot find server - Microsoft Internet Explorer
17 Modem Exchanges
18 .NET-BroadcastEventWindow.2.0.0.0.11c7a8c.0
19 WOWExec
20 Compaq Mode Change
21 NVSVCPMMWindowClass
22 MS_WebcheckMonitor
23 Connections Tray
24 Power Meter
25 SMax4PNP
26 AEBalloonTip
27 LatinCombMsgWnd
28 DccMan
29 RAPIMgr
30 Avira AntiVir Personal - Free Antivirus - SysTray
31 AsianBoxWnd
32 SoundMax4
33 Lined Pending Text Host Window
34 Agere Systems Soft Modem Monitor
35 NVIDIA TwinView Window
36 SpeedTouch USB Diagnostics (RFC1483)
37 Tablet PC Buttons Service
38 GDI+ Window
39 BTTrayMainWindow
40 Resource Workshop - DIALOG : ESPECIALES
41 Resource Workshop - mk.dll
42 32x32
43 Program Manager

Variables in use
================
Procedure Type Value
==========================
TSBROWSE:ERROR
Param 1: C "Message not found"
Param 2: C "TSBROWSE"
Param 3: C "ADDCOL"
Param 4: N 1004
Local 1: U
Local 2: O Class: TSBROWSE
Local 3: N 13
TSBROWSE:MSGNOTFOUND
Param 1: C "ADDCOL"
Local 1: O Class: TSBROWSE
TSBROWSE:ADDCOL
XBRWADDCOLUMN
Param 1: O Class: TSBROWSE
Param 2: C "ST"
Param 3: B {|| ... }
Param 4: U
Param 5: U
Param 6: U
Param 7: U
Param 8: N 25
Param 9: L .T.
Param 10: L .F.
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: L .T.
Param 17: U
Param 18: U
Local 1: U
Local 2: U
INVENT
Local 1: O Class: TDIALOG
Local 2: O Class: TSBROWSE
Local 3: U
Local 4: U
Local 5: U
Local 6: A Len: 7
Local 7: A Len: 7
Local 8: O Class: TBITMAP
(b)MAIN
Param 1: O Class: TOUTLOOK
Param 2: O Class: TBTNBMP
Param 3: O Class: TSAY
(b)TOUTLOOK:ADDITEM
Param 1: N 9
Param 2: N 124
Param 3: N 0
Param 4: O Class: TSAY
TWINDOW:LBUTTONUP
Param 1: N 9
Param 2: N 124
Param 3: N 0
Local 1: O Class: TSAY
TSAY:LBUTTONUP
Param 1: N 9
Param 2: N 124
Param 3: N 0
Local 1: O Class: TSAY
Local 2: A Len: 2
TWINDOW:HANDLEEVENT
Param 1: N 514
Param 2: N 0
Param 3: N 589948
TCONTROL:HANDLEEVENT
Param 1: N 514
Param 2: N 0
Param 3: N 589948
Local 1: O Class: TSAY
Local 2: U
TSAY:HANDLEEVENT
Param 1: N 514
Param 2: N 0
Param 3: N 589948
Local 1: O Class: TSAY
_FWH
Param 1: N 589948
Param 2: N 514
Param 3: N 0
Param 4: N 589948
Param 5: N 17
Local 1: O Class: TSAY
WINRUN
Param 1: N 8456108
TWINDOW:ACTIVATE
Param 1: C "MAXIMIZED"
Param 2: U
Param 3: U
Param 4: U
Param 5: B {|| ... }
Param 6: B {|| ... }
Param 7: U
Param 8: B {|| ... }
Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: B {|| ... }
Param 18: U
Param 19: U
Local 1: O Class: TWINDOW
Local 2: U
Local 3: U
MAIN
Local 1: U
Local 2: U
Local 3: O Class: TDIALOG
Local 4: U
Local 5: O Class: TICON
Local 6: U
Local 7: O Class: TSPLITTER
Local 8: O Class: TOUTLOOK
Local 9: U
Local 10: U
Local 11: O Class: TBUTTON
Local 12: U
Local 13: U
Local 14: C "\MEDICKEY\IMG\BRUSH01.BMP"
Local 15: U
Local 16: U
Local 17: L .T.
Local 18: O Class: TBITMAP
Local 19: U
Local 20: C ""
Local 21: C "\MEDICKEY\BMP\NOFOTO.JPG"
Local 22: C "123 "
Local 23: O Class: TGET
Local 24: U
Local 25: U
Local 26: U
Local 27: C ""
Local 28: C ""
Local 29: A Len: 0
Local 30: U
Local 31: O Class: TDATABASE
Local 32: U
Local 33: O Class: TSAY
Local 34: U
Local 35: C "4645458"
Local 36: U
Local 37: L .F.
Local 38: C "4n؉"
Local 39: U
Local 40: U
Local 41: A Len: 0
Local 42: U
Local 43: O Class: TIMAGE
Local 44: O Class: TFONT
Local 45: O Class: TBITMAP
Local 46: O Class: TSBUTTON
Local 47: O Class: TSBUTTON
Local 48: U
Local 49: U
Local 50: N 0
Local 51: O Class: TBUTTON
Local 52: C ""
Local 53: L .F.
Local 54: C "(Ultimo acceso 13/09/2009 0 dias)"
Local 55: C "Sufro del corazon
"
Local 56: U
Local 57: C ""
Local 58: C "La paciencia es la fuerza del d‚bil; la impaciencia, la debilidad del fuerte."
Local 59: C ""
Local 60: L .F.
Local 61: A Len: 6
Local 62: U
Local 63: U
Local 64: U

Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFCDX
DBFNTX

DataBases in use
================

1: TSP RddName: DBFCDX
==============================
RecNo RecCount BOF EOF
2 2 .F. .F.

Indexes in use TagName

Relations in use

2: INVCAT RddName: DBFCDX
==============================
RecNo RecCount BOF EOF
7 6 .F. .T.

Indexes in use TagName

Relations in use

3: => INVENT RddName: DBFCDX
==============================
RecNo RecCount BOF EOF
1 32 .F. .F.

Indexes in use TagName

Relations in use

Classes in use:
===============
1 HASHENTRY
2 HBCLASS
3 HBOBJECT
4 TFONT
5 TCURSOR
6 TWINDOW
7 TCONTROL
8 TICON
9 TBRUSH
10 TDATABASE
11 TDIALOG
12 TGET
13 GET
14 TCLIPGET
15 TBITMAP
16 TBUTTON
17 TIMAGE
18 TSBUTTON
19 ERROR
20 TSAY
21 TOUTLOOK
22 TBTNBMP
23 TSPLITTER
24 TMULTIGET
25 TSBROWSE
26 TREG32

Memory Analysis
===============
210 Static variables

Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes



Lo que hago es cargar en un arreglo los bitmaps desde el principio del programa aConfig es un arreglo que defino como STATIC para que lo pueda usar con libertad en todo el programa...

// Cargando bitmaps para browse
aBMP := { LoadBitmap( GetResources() , "X_NADA") ,; //1
LoadBitmap( GetResources() , "X_ROJO") ,; //2
LoadBitmap( GetResources() , "X_FOCO") ,; //3
LoadBitmap( GetResources() , "X_VERDE") ,; //4
LoadBitmap( GetResources() , "X_ADMIRACION") ,; //5
LoadBitmap( GetResources() , "X_TELEFONO") ,; //6
LoadBitmap( GetResources() , "X_AUTOMEDIC") ,; //7
LoadBitmap( GetResources() , "X_NOTEPAD") ,; //8
LoadBitmap( GetResources() , "X_SELEC") ,; //9
LoadBitmap( GetResources() , "X_ADMIRACION") ,; //10
LoadBitmap( GetResources() , "X_ALTO") ,; //11
LoadBitmap( GetResources() , "X_EDIT") ,; //12
LoadBitmap( GetResources() , "X_AYUDA") ,; //13
LoadBitmap( GetResources() , "X_INGRESOS") ,; //14
LoadBitmap( GetResources() , "X_STOP") ,; //15
LoadBitmap( GetResources() , "X_BASURA") ,; //16
LoadBitmap( GetResources() , "X_PRODUC") ,; //17
LoadBitmap( GetResources() , "X_NOSELECT") ; //18
}
AConfig[8]:=aBmp

Luego hago el BROWSE...


CODIGO PARA EL BROWSE:
=======================

REDEFINE BROWSE oBrw2 ID 1008 OF oDlg UPDATE CELLED
ADD COLUMN TO oBrw2 BITMAP DATA SIMBOLOS('INVSTATUS') HEADER 'ST' SIZE 25 NOHILITE
ADD COLUMN TO oBrw2 BITMAP DATA SIMBOLOS('INVENT') HEADER 'MM' SIZE 25 NOHILITE
ADD COLUMN TO oBrw2 DATA FieldWBlock('OBJETO',SELECT()) HEADER "OBJETO" ALIGN 0,1,1 SIZE 280 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('VALOR',SELECT()) HEADER "VALOR" ALIGN 2,1,1 SIZE 80 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('FECHACOMP',SELECT()) HEADER "FECHA"+CRLF+"COMPRA" ALIGN 1,1,1 SIZE 85 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('FINGARANT',SELECT()) HEADER "FIN DE"+CRLF+"GARANTIA" ALIGN 1,1,1 SIZE 85 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('PROXREVIS',SELECT()) HEADER "F.PROX,"+CRLF+"EVENTO" ALIGN 1,1,1 SIZE 85 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('COMPRADOEN',SELECT()) HEADER "PROVEEDOR" ALIGN 0,1,1 SIZE 280 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('PRESTADOA',SELECT()) HEADER "PRESTADO A:" ALIGN 0,1,1 SIZE 100 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('FECHAPREST',SELECT()) HEADER "FECHA"+CRLF+"PRESTAMO" ALIGN 1,1,1 SIZE 85 EDIT
ADD COLUMN TO oBrw2 DATA FieldWBlock('CATEGORIA',SELECT()) HEADER "CATEGORIA" ALIGN 0,1,1 SIZE 85
oBrw2:SetColor({1,2,13,14,5,6,11,12,15}, {CLR_BLACK,{NRGB(210,225,242),NRGB(114,163,230)},CLR_WHITE,CLR_BLUE,CLR_BLACK,{NRGB(255,255,255),NRGB(255,0,0)},CLR_HRED,{NRGB(244,226,170),NRGB(223,154,11)},CLR_BLUE } )
oBrw2:nHeightCell += 20
oBrw2:nHeightHead += 14
oBrw2:nFreeze:=2


FUNCION SIMBOLOS... devuelve un numero que apunta al bitmap que deseo mostrar dependiendo de una condicion dada


FUNC SIMBOLOS(MODO)
LOCAL N:=1
IF MODO='CONTAC'
IF !EMPTY(CONTAC->PROXCALL)
IF CONTAC->PROXCALL=DATE()
N:=6
ELSEIF CONTAC->PROXCALL<DATE()
N:=5
ENDIF
ENDIF
ELSEIF MODO='TODOLIST'

ELSEIF MODO='INVENT'
IF !EMPTY(INVENT->COMENT)
N:=12
ENDIF
ELSEIF MODO='INVSTATUS'
IF INVENT->STATUS='PER' // PERDIDO
N:=13
ELSEIF INVENT->STATUS='REG' // REGALADO
N:=14
ELSEIF INVENT->STATUS='PRE' .OR. !EMPTY(INVENT->PRESTADOA) // PRESTADO
N:=15
ELSEIF INVENT->STATUS='XXX' // FUERA DE USO, DANADO
N:=16
ELSEIF INVENT->STATUS='REP' // EN REPARACION
N:=11
ENDIF
IF INVENT->PROXREVIS-DATE()<=3 .AND. !EMPTY(INVENT->PROXREVIS) .AND. INVENT->PROXREVIS>DATE()
N:=3
ENDIF

ELSEIF MODO='MEDICHIST'
IF MEDICHIS->STATUS='R'
N:=8
ELSEIF MEDICHIS->STATUS='A'
N:=7
ELSEIF MEDICHIS->STATUS='S'
N:=11
ENDIF
ELSEIF MODO='VACUNAS'
IF !EMPTY(VACUNAS->FECHA)
N:=9
ELSEIF EMPTY(VACUNAS->FECHA) .AND. DATE()-aConfig[9]>VACUNAS->DIAS
N:=10
ELSEIF EMPTY(VACUNAS->FECHA) .AND. DATE()-aConfig[9]=VACUNAS->DIAS
//N:=4
ENDIF
ENDIF
RETU aConfig[8,N]


Gracias...
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Bitmap en TSBrowse

Postby mmercado » Mon Sep 14, 2009 9:07 am

Hola Jose:

Anteriormente la función LoadBitMap() devolvía directamente el handler (hBitmap numérico) del bitmap, actualmente devuelve un arreglo de 2 elementos { hBitMap, hPalette }

Tu problema se resuelve devolviendo aConfig[8,N][1] desde la función SIMBOLOS(), o bien, definiendo las columnas del browse de la siguiente manera:
Code: Select all  Expand view
ADD COLUMN TO oBrw2 BITMAP DATA SIMBOLOS('INVSTATUS')[1] HEADER 'ST' SIZE 25 NOHILITE
ADD COLUMN TO oBrw2 BITMAP DATA SIMBOLOS('INVENT')[1] HEADER 'MM' SIZE 25 NOHILITE

Espero te funcione.

Un abrazo.

Manuel Mercado.
manuelmercado at prodigy dot net dot mx
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Bitmap en TSBrowse

Postby JoseGS » Mon Sep 14, 2009 12:57 pm

Hola Manuel

El problema persiste, aunque he encontrado varias cosas que no tenia bien configuradas. Resulta que si hago:

aBMP := { LoadBitmap( GetResources() , "X_NADA") ,; //1
LoadBitmap( GetResources() , "X_ROJO") ,; //2
LoadBitmap( GetResources() , "X_FOCO") ,; //3
LoadBitmap( GetResources() , "X_VERDE") ,; //4
LoadBitmap( GetResources() , "X_ADMIRACION") ,; //5
LoadBitmap( GetResources() , "X_TELEFONO") ,; //6
LoadBitmap( GetResources() , "X_AUTOMEDIC") ,; //7
LoadBitmap( GetResources() , "X_NOTEPAD") ,; //8
LoadBitmap( GetResources() , "X_SELEC") ,; //9
LoadBitmap( GetResources() , "X_ADMIRACION") ,; //10
LoadBitmap( GetResources() , "X_ALTO") ,; //11
LoadBitmap( GetResources() , "X_EDIT") ,; //12
LoadBitmap( GetResources() , "X_AYUDA") ,; //13
LoadBitmap( GetResources() , "X_INGRESOS") ,; //14
LoadBitmap( GetResources() , "X_STOP") ,; //15
LoadBitmap( GetResources() , "X_BASURA") ,; //16
LoadBitmap( GetResources() , "X_PRODUC") ,; //17
LoadBitmap( GetResources() , "X_NOSELECT") ; //18
}
?aBMP[4]
El valor siempre es un numero negativo, verifique el programa en FW23 y siempre es un numero positivo. Esto es normal en FWH ?


Si hago:
?LoadBitmap( GetResources() , "X_NADA")
lo que me devuelve FWH es un numero no un array...

Uso FWH 8.05, tendra algo que ver con eso ?

Y continua saliendo el error
Error description: Error BASE/1004 Message not found: TSBROWSE:ADDCOL

Gracias por ayudar Sr. Manuel, estoy avanzando con otras partes del programa pero pronto tendre que tener una respuesta sobre este problema ya que utilizo mucho dicha caracteristica y no quiero pasar al XBrowse ya que me parece que requiere mucho esfuerzo para lograr algunas cosas que deberian ser mas sencillas.

Saludos
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Bitmap en TSBrowse

Postby mmercado » Mon Sep 14, 2009 3:20 pm

JoseGS wrote:?LoadBitmap( GetResources() , "X_NADA")
lo que me devuelve FWH es un numero no un array...
Tienes razón, me confundí de función. No es ese el problema.

JoseGS wrote: Error description: Error BASE/1004 Message not found: TSBROWSE:ADDCOL
El método AddCol es un método de xBrowse, existe en tu programa alguna mezcla de instrucciones con xBrowse, observa la siguiente linea en tu error.log:
Called from: XBROWSE.PRG => XBRWADDCOLUMN(0)

Saludos.

Manuel Mercado
manuelmercado at prodigy dot net dot mx
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Bitmap en TSBrowse

Postby JoseGS » Mon Sep 14, 2009 7:46 pm

Lo he resuelto amigo Manuel

Al iniciar el pase del sistema de FW23 a FWH habia tratado de experimentar con TxBrowse pero desisti debido a que tenia que escribir demasiado para hacer cosas muy basicas como por ejemplo, si uso la clausula EDITABLE, luego tengo que hacer toda una peripecia para que el dato caputado sea almacenado en la DBF...???? no se si sea asi siempre o es que yo no se como hacerlo bien...??

Lo cierto es que habia colocado al principio del programa
#include "fivewin.ch"
#INCLUDE "TSbrowse.ch"
#include "TSButton.ch"
#include "outlook.ch"
#include "splitter.Ch"
#INCLUDE "REPORT.ch"
*#include "xBrowse.ch" <------ culpable !!!!
#include "FOLDER.ch"


y estaba chocando xBrowse con sBrowse

Gracias por tu orientacion

Saludos hasta Mexico
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 22 guests