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))
Problema con tccolumn:New
Moderator: Enrico Maria Giordano
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
- Enrico Maria Giordano
- Posts: 8753
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 4 times
- Contact:
Re: Problema con tccolumn:New
Per favore, prepara un microesempio che mostri il problema e che sia compilabile.
EMG
EMG
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
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 ?
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
Marco Turco
SOFTWARE XP LLP
Prova così:
Code: Select all | Expand
@ 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
Ugo
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
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
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
Marco Turco
SOFTWARE XP LLP
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact: