Page 1 of 1
quale lausare ?
Posted:
Fri Mar 24, 2006 3:15 pm
by Piscicelli Zingoni
Salve,
Ho l'esigenza di creare una 'pseudo browse' che abbia queste caratteristiche:
1) possibilita' di colorare ogni cella con colore diverso a secondo una condizione
2) popup diverso per ogni cella ( a secondo condizione)
3) inserire bottoni logici e/o bitmap
Chiedo troppo?
Ho provato ad utilizzare:
----------------------
@10,10 Browse ....
ADD COLUMN TO BROWSE ..... HEADER .. DATA ECC
ADD COLUMN TO BROWSE ..... HEADER .. DATA ECC
------------
Ma ho visto che non mi permette di inserire ne bmp ne bottoni
Cosa posso utilizzare in alternativa?
Si accetta qualasiasi dritta
Grazie
Piscicelii Zingoni
Re: quale lausare ?
Posted:
Fri Mar 24, 2006 4:42 pm
by Enrico Maria Giordano
La TCBrowse consente di visualizzare bitmaps e fa anche le altre cose che ti servono.
EMG
Posted:
Sat Mar 25, 2006 7:40 am
by Piscicelli Zingoni
Grazie Enrico per l'esempio che mi hai mandato e che allego.
Voelvo sapere se esiste da qualche parte la descrizione di tutti i parametri che si possono inserire nel comando ADD COLUMN ...
Tks
Piscicelli/Zingoni
- Code: Select all Expand view
*** ESEMPIO di EMG*******************
#include "Fivewin.ch"
#include "Tcbrowse.ch"
FUNCTION MAIN()
LOCAL oDlg, oBrw, oCol
LOCAL hBmp1 := READBITMAP( 0, "\fwharbour\bitmaps\checkon.bmp" )
LOCAL hBmp2 := READBITMAP( 0, "\fwharbour\bitmaps\checkoff.bmp" )
USE TEST
DEFINE DIALOG oDlg SIZE 400, 300
@ 0, 0 BROWSE oBrw
ADD COLUMN TO oBrw;
DATA TEST -> last;
HEADER "LAST"
ADD COLUMN TO oBrw;
DATA TEST -> first;
HEADER "FIRST"
ADD COLUMN TO oBrw;
DATA IF( TEST -> last = "S", hBmp1, hBmp2 );
BITMAP
oBrw:lCellStyle = .T.
oBrw:lMChange = .F.
ACTIVATE DIALOG oDlg;
ON INIT oDlg:SetControl( oBrw );
CENTER
CLOSE
RETURN NIL
Posted:
Sat Mar 25, 2006 8:54 am
by Enrico Maria Giordano
Piscicelli Zingoni wrote:Voelvo sapere se esiste da qualche parte la descrizione di tutti i parametri che si possono inserire nel comando ADD COLUMN ...
Nella documentazione oppure, meglio, nel file tcbrowse.ch.
EMG
Posted:
Sat Mar 25, 2006 10:11 am
by Piscicelli Zingoni
Ovvviamente.
Mi riferivo ad esempi magari giĆ realizzati tipo per i report nei sample.
Vabbbbbe, ci provo.
Tks 10000 cmq.
Piscicelli/Zingoni
Posted:
Tue Mar 28, 2006 5:50 pm
by Piscicelli Zingoni
Proprio non mi viene:
Volevo sapere come faccio a conoscere su quale colonna (non riga) il cliente sta cliccando?
Ho provato a guadare dentro tcbrowse.prg e ho fatto molti test senza successo.
La solta anima gentile che mi da una mano ?
Grazie
Piscicelli/Zingoni
Posted:
Tue Mar 28, 2006 7:13 pm
by Enrico Maria Giordano
- Code: Select all Expand view
#include "Fivewin.ch"
#include "Tcbrowse.ch"
FUNCTION MAIN()
LOCAL oDlg, oBrw, oCol
LOCAL hBmp1 := READBITMAP( 0, "\fwharbour\bitmaps\checkon.bmp" )
LOCAL hBmp2 := READBITMAP( 0, "\fwharbour\bitmaps\checkoff.bmp" )
USE TEST
DEFINE DIALOG oDlg SIZE 400, 300
@ 0, 0 BROWSE oBrw;
ON CLICK MSGINFO( oBrw:nColAct )
ADD COLUMN TO oBrw;
DATA TEST -> last;
HEADER "LAST"
ADD COLUMN TO oBrw;
DATA TEST -> first;
HEADER "FIRST"
ADD COLUMN TO oBrw;
DATA IF( TEST -> last = "S", hBmp1, hBmp2 );
BITMAP
oBrw:lCellStyle = .T.
oBrw:lMChange = .F.
ACTIVATE DIALOG oDlg;
ON INIT oDlg:SetControl( oBrw );
CENTER
CLOSE
RETURN NIL
Posted:
Fri Mar 31, 2006 4:30 pm
by Piscicelli Zingoni
Pare impossibile ma ho trovato cosa cercavo.
Volevo sapere la colonna su cui ero posizionato e questa e' l'istruzione:
oBrw:nColAct
sfuttando l'istruzione:
oBrw:bLClicked = { | nRow, nCol | mia_funzione( nRow, nCol, oBrw, oDlg ) }
La mia nuova domanda e':
1) per sapere il nColAt mi devo spostare con il mouse o freccie sulla relativa cella ma se clicco con tasto destro su un'altra cella: come faccio per sapere su che riga/colonna sono ?
2) e' possibile avere qualcosa tipo: oBrw:bLClicked:Colonna[i] ={ ... }
ossia x riga o colonna ?
Grazie
Pisciceli /Zingoni
Posted:
Fri Mar 31, 2006 4:50 pm
by Enrico Maria Giordano
Piscicelli Zingoni wrote:Pare impossibile ma ho trovato cosa cercavo.
Volevo sapere la colonna su cui ero posizionato e questa e' l'istruzione:
oBrw:nColAct
Evidentemente ti sei rifiutato di esaminare il mio esempio che conteneva, appunto, quell'istruzione. Come mai?
Piscicelli Zingoni wrote:La mia nuova domanda e':
1) per sapere il nColAt mi devo spostare con il mouse o freccie sulla relativa cella ma se clicco con tasto destro su un'altra cella: come faccio per sapere su che riga/colonna sono ?
Eccoti il solito esempio, ancora modificato. E speriamo che stavolta tu lo prenda in considerazione:
- Code: Select all Expand view
#include "Fivewin.ch"
#include "Tcbrowse.ch"
FUNCTION MAIN()
LOCAL oDlg, oBrw, oCol
LOCAL hBmp1 := READBITMAP( 0, "\fwharbour\bitmaps\checkon.bmp" )
LOCAL hBmp2 := READBITMAP( 0, "\fwharbour\bitmaps\checkoff.bmp" )
USE TEST
DEFINE DIALOG oDlg SIZE 400, 300
@ 0, 0 BROWSE oBrw;
ON CLICK MSGINFO( oBrw:nColAct );
ON RIGHT CLICK ( MSGINFO( NWROW( oBrw:hWnd, oBrw:hDC, nRow, IF( oBrw:oFont != nil, oBrw:oFont:hFont, 0 ) ) ),;
MSGINFO( oBrw:nAtCol( nCol ) ) )
ADD COLUMN TO oBrw;
DATA TEST -> last;
HEADER "LAST"
ADD COLUMN TO oBrw;
DATA TEST -> first;
HEADER "FIRST"
ADD COLUMN TO oBrw;
DATA IF( TEST -> last = "S", hBmp1, hBmp2 );
BITMAP
oBrw:lCellStyle = .T.
oBrw:lMChange = .F.
ACTIVATE DIALOG oDlg;
ON INIT oDlg:SetControl( oBrw );
CENTER
CLOSE
RETURN NIL
Piscicelli Zingoni wrote:2) e' possibile avere qualcosa tipo: oBrw:bLClicked:Colonna[i] ={ ... }
ossia x riga o colonna ?
Non che io sappia.
EMG
Posted:
Fri Mar 31, 2006 5:09 pm
by Piscicelli Zingoni
riesco almeno a sapere la riga/colonna dove mi trovo sfruttando l'struzione:
oBrw:bRClicked = { | nRow, nCol | ShowPopup( nRow, nCol, oBrw ) } ?
Grazie
Posted:
Sun Apr 02, 2006 3:12 pm
by Piscicelli Zingoni
Oooops!!
Non so perche' ma non avevo visto la differenza tra i vari esempi.
Scusa ci guardo subito
Ciao
Posted:
Sun Apr 02, 2006 3:25 pm
by Enrico Maria Giordano
Finalmente!
Posted:
Tue Apr 04, 2006 4:12 pm
by Piscicelli Zingoni
Grande Enrico, chiaramente funziona bene.......l'ho modificata e volevo che cliccando a destra con il mouse mi si evidenziasse tale cella, a tale scopo passo i parametri (x,y) ad una mia funzione e riesco a settare con :
function miafunc
param _y,_x,oBrw
oBrw:nColAct:=_x && e funziona nel senso che si evidenzia la cella X
oBrw:refresh()
* non riesco pero' ad evidenziare la cella Y
* ho provato con
oBrw:vsetpos(_y)
oBrw:refresh() && ma non succede niente
......
Come faccio per evidenziare la cella dove ho fatto RIGHT CLICK ??
Grazie
Piscicelli/Zingoni
Posted:
Tue Apr 04, 2006 4:37 pm
by Enrico Maria Giordano
- Code: Select all Expand view
#include "Fivewin.ch"
#include "Tcbrowse.ch"
FUNCTION MAIN()
LOCAL oDlg, oBrw, oCol
LOCAL hBmp1 := READBITMAP( 0, "\fwharbour\bitmaps\checkon.bmp" )
LOCAL hBmp2 := READBITMAP( 0, "\fwharbour\bitmaps\checkoff.bmp" )
USE TEST
DEFINE DIALOG oDlg SIZE 400, 300
@ 0, 0 BROWSE oBrw;
ON RIGHT CLICK oBrw:LButtonDown( nRow, nCol, nFlags )
// ON CLICK MSGINFO( oBrw:nColAct );
// ON RIGHT CLICK ( MSGINFO( NWROW( oBrw:hWnd, oBrw:hDC, nRow, IF( oBrw:oFont != nil, oBrw:oFont:hFont, 0 ) ) ),;
// MSGINFO( oBrw:nAtCol( nCol ) ) )
ADD COLUMN TO oBrw;
DATA TEST -> last;
HEADER "LAST"
ADD COLUMN TO oBrw;
DATA TEST -> first;
HEADER "FIRST"
ADD COLUMN TO oBrw;
DATA IF( TEST -> last = "S", hBmp1, hBmp2 );
BITMAP
oBrw:lCellStyle = .T.
oBrw:lMChange = .F.
ACTIVATE DIALOG oDlg;
ON INIT oDlg:SetControl( oBrw );
CENTER
CLOSE
RETURN NIL
EMG
Posted:
Tue Apr 04, 2006 4:43 pm
by Piscicelli Zingoni
Incredibile semplicita'
Non sparire per i prossimi 2000 anni
Grazie