Modificando array de combobox en tiempo de ejecucion

Modificando array de combobox en tiempo de ejecucion

Postby Loren » Sat Nov 29, 2008 1:28 pm

compañeros:

He leido samples\combo.prg y algun que otro hilo de este foro,,, pero no logro obtener resultados satisfactorio. Intento añadir Items al combobox mediante un get.

El codigo es:
Code: Select all  Expand view
  redefine combobox ozona   var pzona items azona1 id 4004 of ocama1 UPDATE
  redefine btnbmp omas resource 'mas' id 4010 of ocama1 NOBORDER action (newzona(.t.,.t.),arrayzonas(),ozona:SetItems(azona1),ozona:refresh())


La funcion newzona(.t.,.t.) contiene el GET que permite añadir un nuevo registro a la DBF. Esta funcion va perfecto.
La funcion arrayzonas() realiza un barrido por los registros de la DBF y modifica el contenido de azona1. (lo he comprobado y funciona perfectamente añadiendome un nuevo array a azona1)
El problema está en ozona:SetItems(azona1) que me genera el siguiente error:
Code: Select all  Expand view
Error description: Error BASE/1132  Error de rango: acceso al array
   Args:
     [   1] = A   { ... }
     [   2] = N   0

Se supone que debe funcionar pero me genera este error...
¿Que hago mal?
Mil gracias
Un saludo a todos.
LORENZO
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Postby Daniel Garcia-Gil » Sat Nov 29, 2008 3:00 pm

con la informacion que has puesto solo presumo, porque no se como has declarado la matriz..
si la matriz es declarada local, debes pasarla como parametro de alguna manera para se pueda modificar, todas las matrizes se pasan por referencia, si no la pasas por parametro, puedes hacer esto aZona1:=arrayzonas(), presumiendo que arrayzonas() sea una funcion que iguale el nuevo valor de aZona1...
espero te sirva o te de alguna idea
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby Loren » Sat Nov 29, 2008 5:28 pm

Gracias por contestar, pero la variable aZona1 está declarada como Static. No lo tengo que pasar como parametro. Lo reconoce perfectamente.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Postby Antonio Linares » Sat Nov 29, 2008 9:28 pm

Lorenzo,

Prueba a asignar nil a la variable pzona antes de llamar a ozona:SetItems(azona1)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42079
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Sat Nov 29, 2008 9:34 pm

Lorenzo,

Este ejemplo funciona bien aqui:
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oDlg, oCbx, cValue

   DEFINE DIALOG oDlg TITLE "Test"

   @ 1, 1 COMBOBOX oCbx VAR cValue ITEMS { "Uno", "Dos", "Tres" } OF oDlg
   
   @ 0.7, 10 BUTTON "Cambia" OF oDlg ;
      ACTION ( oCbx:SetItems( { "Primero", "Segundo", "Tercero" } ), oCbx:Select( 1 ) )

   ACTIVATE DIALOG oDlg CENTERED

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42079
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 50 guests