Problema con tccolumn:New

Moderator: Enrico Maria Giordano

Problema con tccolumn:New

Postby Marco Turco » Thu Feb 28, 2008 11:54 am

Salve,
sto cercando di creare un browse di un array senza utilizzare i comandi ADD COLUMN ma direttamente scrivendo il codice.
Il problema è che creando le colonne così appena eseguo il browse mi appare un errore di array access.

Credo di aver definito male il codice per assegnare le colonne al browser ma non capisco come altro fare. Ho preso spunto da tccolumn.ch.

Qualche idea ?

Questo è un codice di esempio:


aBrwArray:=array(0,2)
aadd(aBrwArray,{"01","Primo"})
aadd(aBrwArray,{"02","Secondo"})

@ 1.5,5 COLUMN BROWSE aObjects[6] OF oWnd SIZE 150, 135
aObjects[6]:SetArray(aBrwArray)

aObjects[6]:AddColumn(TCColumn:New("Num",aObjects[6]:aArray[aObjects[6]:nAt,1],,,,,100))

aObjects[6]:AddColumn(TCColumn:New("Titolo",aObjects[6]:aArray[aObjects[6]:nAt,2],,,,,100))
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Re: Problema con tccolumn:New

Postby Enrico Maria Giordano » Thu Feb 28, 2008 4:15 pm

Per favore, prepara un microesempio che mostri il problema e che sia compilabile.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8307
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Marco Turco » Thu Feb 28, 2008 6:12 pm

Ecco un self-contained che mostra il problema.
www.softwarexp.co.uk/beta/test.zip

il problema è sicuramente sulla sintassi che utilizzo per aggiungere le colonne al browse, però mi sono basato sulla conversione comando->codice di tccolumn.ch (vedi cartella include di FWH).

Che ne pensi ?
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Ugo » Fri Feb 29, 2008 3:32 pm

Prova così:
Code: Select all  Expand view
    @ 1,2 COLUMN BROWSE aObjects[6] OF oWndChild SIZE 250, 195
    aObjects[6]:cAlias := "ARRAY"
    aObjects[6]:nAt    := 1
    aObjects[6]:AddColumn( TCColumn():New("Num",;
                                          {|| aBrwArray[aObjects[6]:nAt, 1] },;
                                          ,;
                                          ,;
                                          ,;
                                          ,;
                                          100 ))
    aObjects[6]:AddColumn( TCColumn():New("Title",;
                                          {|| aBrwArray[aObjects[6]:nAt, 2] },;
                                          ,;
                                          ,;
                                          ,;
                                          ,;
                                          100 ))
    aObjects[6]:SetArray(aBrwArray)
   oWndChild:SetControl( aObjects[6] )
Ciao, best regards,
Ugo
User avatar
Ugo
 
Posts: 283
Joined: Sat Oct 15, 2005 6:40 am
Location: Turin, Italy

Postby Marco Turco » Fri Feb 29, 2008 5:25 pm

Niente da fare. Il browse appare ma vuoto.

Comunque ho risolto con:

aObjects[6]:AddColumn(TCColumn():New("Num",{|x| ;
If(Pcount()>0, aObjects[6]:aArray[aObjects[6]:nAt, 1] :=x, aObjects[6]:aArray[aObjects[6]:nAt, 1])},,,,,100))

anche se mettendo questo codice in un ciclo for per creare tutte le colonne automaticamente mi appare un errore di array access.

In pratica vorrei fare qualcosa tipo

For i:=1 to 2
aObjects[6]:AddColumn(TCColumn():New("Num",{|x| ;
If(Pcount()>0, aObjects[6]:aArray[aObjects[6]:nAt, i] :=x, aObjects[6]:aArray[aObjects[6]:nAt, i])},,,,,100))

next
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Marco Turco » Sat Mar 01, 2008 8:25 am

Ok. Risolto. Grazie.
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London


Return to All products support

Who is online

Users browsing this forum: No registered users and 4 guests