FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index All products support quale lausare ?
Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Fri Mar 24, 2006 03:15 PM

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

Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM

Re: quale lausare ?

Posted: Fri Mar 24, 2006 04:42 PM

La TCBrowse consente di visualizzare bitmaps e fa anche le altre cose che ti servono.

EMG

Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Sat Mar 25, 2006 07:40 AM
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




*** 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
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM

quale lausare ?

Posted: Sat Mar 25, 2006 08:54 AM
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
Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Sat Mar 25, 2006 10:11 AM

Ovvviamente.
Mi riferivo ad esempi magari già realizzati tipo per i report nei sample.
Vabbbbbe, ci provo.
Tks 10000 cmq.

Piscicelli/Zingoni

Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Tue Mar 28, 2006 05:50 PM

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

Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM

quale lausare ?

Posted: Tue Mar 28, 2006 07:13 PM
#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
Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Fri Mar 31, 2006 04:30 PM
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
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM

quale lausare ?

Posted: Fri Mar 31, 2006 04:50 PM
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:

#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
Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Fri Mar 31, 2006 05:09 PM

riesco almeno a sapere la riga/colonna dove mi trovo sfruttando l'struzione:
oBrw:bRClicked = { | nRow, nCol | ShowPopup( nRow, nCol, oBrw ) } ?

Grazie

Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Sun Apr 02, 2006 03:12 PM

Oooops!!
Non so perche' ma non avevo visto la differenza tra i vari esempi.
Scusa ci guardo subito
Ciao

Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Tue Apr 04, 2006 04:12 PM

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

Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM

quale lausare ?

Posted: Tue Apr 04, 2006 04:37 PM
#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
Posts: 76
Joined: Wed Oct 12, 2005 05:52 PM

quale lausare ?

Posted: Tue Apr 04, 2006 04:43 PM

Incredibile semplicita'

Non sparire per i prossimi 2000 anni

Grazie

Continue the discussion