FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema con LISTBOX
Posts: 199
Joined: Tue Apr 22, 2008 09:54 AM
Problema con LISTBOX
Posted: Wed Oct 15, 2008 04:24 PM
Tengo el siguiente c贸digo que funciona bien:

#include "FiveWin.ch"

function Main()

   local oDlg, oLbx
   local cItem := ""
   local aLista := {}
   local n := 0

   For n = 1 To 10
       Aadd( aLista, "hola" )
   Next

   DEFINE DIALOG oDlg RESOURCE "Test"

   REDEFINE LISTBOX oLbx VAR cItem ITEMS aLista ID 110 OF oDlg

   ACTIVATE DIALOG oDlg CENTERED

return nil


Si sustiumos:
   For n = 1 To 10
       Aadd( aLista, "hola" )
   Next


Por:
   For n = 1 To 10
       Aadd( aLista, { "hola", "adios" } )
   Next


Se produce un error Windows, que dice:

xxxxxxxxxx.Exe ha detectado un problema y debe cerrarse.
Si est谩 en pleno proceso, puede perderse la informaci贸n con la que est茅 trabajando.

Informe a Microsoft de este problema.
Se ha creado un informe de errores que puede...

Y las opciones de costumbre: Enviar informe de errores 贸 No enviar.

El fichero .RC: (por si estuviese aqu铆 el problema)
#define DIALOG_1	1


test DIALOG 152, 107, 207, 111
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ListBox"
FONT 8, "MS Sans Serif"
{
 LISTBOX 110, 25, 6, 116, 91, LBS_STANDARD
}


Entiendo que LISTBOX no soporta arrays multidimensionales...?? pero necesito mostrar un array de varios campos.

Alguna sugerencia?

Gracias!
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Problema con LISTBOX
Posted: Wed Oct 15, 2008 05:05 PM

Hazlo asi: Salu2

C贸digo:

include "FiveWin.ch"

function Main()

local oDlg, oLbx
local cItem := ""
local aLista := {}
local n := 0

For n = 1 To 10
Aadd( aLista, {"hola","adios"} )
Next

DEFINE DIALOG oDlg RESOURCE "Test"

REDEFINE LISTBOX oLbx ;
HEADERS "titulo1","titulo2" ;
FIELDS aLista[oLbx:nAt, 1], aLista[oLbx:nAt, 2] :
ID 110 OF oDlg

oLbx:SetArray(aLista)

ACTIVATE DIALOG oDlg CENTERED

return nil

i en el .RC ysa un control TWBROWSE

Posts: 199
Joined: Tue Apr 22, 2008 09:54 AM
Problema con LISTBOX
Posted: Wed Oct 15, 2008 05:57 PM
Willi, gracias por tu ayuda y enhorabuena por tu hijo... por cierto, yo he tenido el primero el 17/09... toda una experiencia eh!?

Al compilar tu c贸digo, me sale el siguiente error de compilaci贸n:

C:\kk\lbxdraw.prg(19) Error E0030 Syntax error: "syntax error at 'LISTBOX'"

1 error

No code generated

#include "FiveWin.ch"

function Main()

   local oDlg, oLbx
   local cItem := ""
   local aLista := {}
   local n := 0

   For n = 1 To 10
       Aadd( aLista, { "hola", "adios" } )
   Next

   DEFINE DIALOG oDlg RESOURCE "Test"

   REDEFINE LISTBOX oLbx ; 
            HEADERS "titulo1","titulo2" ; 
            FIELDS aLista[oLbx:nAt, 1], aLista[oLbx:nAt, 2];
            ID 110 OF oDlg 

   oLbx:SetArray(aLista) 

   ACTIVATE DIALOG oDlg CENTERED

return nil


El .RC modificado:

#define DIALOG_1   1 


test DIALOG 152, 107, 207, 111
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ListBox"
FONT 8, "MS Sans Serif"
{
 CONTROL "", 110, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 9, 14, 189, 77
}


Gracias por tu ayuda!
Posts: 234
Joined: Tue Oct 25, 2005 12:39 AM
para ver el array
Posted: Wed Oct 15, 2008 08:08 PM

Aqu铆 otra forma de mostrar array

include "FiveWin.ch"

function Main()

local oDlg, oLbx
local cItem := ""
local aLista := {}
local n := 0
local nItem := 1

For n = 1 To 10
Aadd( aLista, "hola" )
Next

DEFINE DIALOG oDlg RESOURCE "Test"

REDEFINE LISTBOX oLbx ;
FIELDS aLista[nItem][1], aLista[nItem][2] ;
HEADERS "Titulo 1","Titulo 2" ;
ID 110 UPDATE OF oDlg

  oLbx:bGoTop    := { || nItem := 1 }
  oLbx:bGoBottom := { || nItem := Eval( oLbx:bLogicLen ) }
  oLbx:bSkip     := { | nWant, nOld | nOld := nItem, nItem += nWant,;
                       nItem := Max( 1, Min( nItem, Eval( oLbx:bLogicLen ) ) ),;
                       nItem - nOld }
  oLbx:bLogicLen := { || Len( aLista ) }
  oLbx:cAlias    := "Array"          
  oLbx:nLineStyle := 0

ACTIVATE DIALOG oDlg CENTERED

return nil

Posts: 199
Joined: Tue Apr 22, 2008 09:54 AM
Problema con LISTBOX
Posted: Thu Oct 16, 2008 08:46 AM

Ok, muchas gracias, ya lo tengo solucionado.

Saludos!

Continue the discussion