Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ayudita Con Un Arreglo De Objetos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ayudita Con Un Arreglo De Objetos 
 
Hola a todos otra vez, estoy intentado hacer un arreglo de objetos ya que he escrito una parte de codigo que me parece poco elegante, creo que puedo utilizar un bucle para ello pero no encuentro la forma(ubuntu 12.04 gambas3), primero en el modulo he creado un procedimiento,
Public Sub cargarIngredientes(cmbbox As ComboBox)
  
  Dim $result As Result
  Dim bucle As Integer

  ModCon.conectar()
  
  $result = ModCon.$con.Exec("select descripcion from ingredientes order by descripcion")
  
  For bucle = 0 To ($result.count - 1)
    
    cmbbox.Add($result!descripcion)
    $result.MoveNext
    
  Next
  
End
 


y luego en un formulario con varios combobox que cargan la misma informacion he hecho esto

Public Sub Form_Open()

  Dim bucle As Integer
    
  Me.Center
  Me.Y = 0
  
  ModCon.carga_tipos1(cmbTipoElav, cmbTipoCons, cmbTempoSer, "TiposElaboracion", "TiposConservacion", "TempServicio")
  ModCon.carga_tipos2(cmbTipoPlato, cmbTipoDificil, cmbTipoMaquina, "TipoPlato", "TipoDificil", "TipoMaquinaria")
  
  ModCon.cargarIngredientes(cmbIngre1)
  ModCon.cargarIngredientes(cmbIngre2)
  ModCon.cargarIngredientes(cmbIngre3)
  ModCon.cargarIngredientes(cmbIngre4)
  ModCon.cargarIngredientes(cmbIngre5)
  ModCon.cargarIngredientes(cmbIngre6)
  ModCon.cargarIngredientes(cmbIngre7)
  ModCon.cargarIngredientes(cmbIngre8)
  ModCon.cargarIngredientes(cmbIngre9)
  ModCon.cargarIngredientes(cmbIngre10)
  ModCon.cargarIngredientes(cmbIngre11)
  ModCon.cargarIngredientes(cmbIngre12)

End
 


Pero por lo que he estado leyendo en la documentacion de gambas y mirando en los ejemplos que habeis dejado por el foro creo que hay una mejor manera para llegar a donde quiero, mi pregunta es si alguien puede hechar una mano con ello.
Muchas gracia a todos.
Un saludo.
 



 
aratar79 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
No entiendo muy bien que quieres "optimizar" de tu código...

Lo que no veo bien que es lo de "cmbIngre1", "cmbIngre2",... pero no se a que te refieres...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
No se si es posible algo así como:

For bucle = 0 to 12

      Modulo.funcion(combo[bucle])

Next

Un saludo.
 



 
aratar79 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
aratar79:

Entonces tienes que repetir la misma función con cada combobox.¿ no ?.
¿ Te suena el bucle For each ?.

Repetiría la misma operación con cada combobox que pueda existir en el formulario en cuestión.

Te pongo un ejemplo.
Fíjate lo que hace el bucle.Busca cada combobox en el formulario en cuestión.
Pero ojo, que va hacer la misma operación con cada combobox del formulario.
ME hace referencia al formulario actual.

PUBLIC SUB Button1_Click()
DIM uncombo AS Object

FOR EACH uncombo IN ME.Controls
  IF uncombo IS Combobox  THEN
        modulo.funcion(uncombo)  
  ENDIF
NEXT

END
 


Este ejemplo lo puse en el blog:

Public Sub bucle_for_each()

Dim tabla As Integer[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Dim a, b As Integer

For Each a In tabla ' Por cada numero entero en la tabla
       For Each b In tabla
             Print a & " * " & b & " = " & (a * b)
       Next
       Print 'Para dejar un espacio en blanco
Next

End
 


http://gambas-basico.blogspot.com.e...s-anidados.html

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 31 Agosto 2012, 23:35; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
Pues muchas gracias la verdad es que sonarme el for each si que me suena porque lo habia leido en la documentación pero no acababa de comprenderlo, otra vez muchas gracias voy a probar a ver si consigo hacer lo que busco, la verdad es que si los 12 combos tienen que hacer lo mismo, cargar todos los ingredientes para poder crear un receta.  Muchas gracias otra vez.

Un saludo.
 



 
aratar79 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
Yo lo que hago es esto por ejemplo y lo trabajo con objetos. Tengo un metodo Load_Ctrl (Cargar Control) y me va selecionando el tipo de control y de ahi cargo los datos al objeto, lo encuentro un poco mas funcional a mi modo de ver.


Public Sub Load_Ctrl(hCtrl As Control)
  Dim hGeo_BE As BEGeo_Location, hGeo_List As BEGeo_Location[], hCmb As ComboBox, hTrv As TreeView, iCont As Integer

  hGeo_List = Me.List() # Cargo un array con el objeto BEGeo_Location
  hGeo_BE = New BEGeo_Location
  iCont = 0

  For Each hGeo_BE In hGeo_List
    Select Object.Type(hCtrl)
      Case "ComboBox"
        hCmb = hCtrl
        If iCont = 0 Then hCmb.Add("", 0)
        If hGeo_BE.Type = 4 Then hCmb.Add(hGeo_BE.Name)
      Case "TreeView"
        hTrv = hCtrl
        If hGeo_BE.Parent > 0 Then
          hTrv.Add(hGeo_BE.Code, hGeo_BE.Name,, hGeo_BE.Parent)
        Else
          hTrv.Add(hGeo_BE.Code, hGeo_BE.Name)
        Endif
    End Select
    Inc iCont
  Next
End

 

 



 
gara_pm - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
Buenos aportes, tanto el de Shell como el de gara_pm.

Los usos para el curso, http://cursogambas.blogspot.com.es/...e-tenga-un.html, si no os importa.

Nota.
El de gara_pm, lo he tenido que simplificar para que sea mas sencillo de entender
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
Julio:

Claro, úsalo.Todo sea para que aprendan.
Acuérdate también del ejemplo en el que teníamos varias cajas de texto y con este tipo de bucle,
limpiábamos el  contenido de todos los textbox

Y ademas en otro ejemplo también comprobábamos si a la hora de completar un formulario nos habíamos
dejado algo por escribir en alguna caja de texto y nos invitaba a completar la caja de texto que faltaba.

Las posibilidades son muchas.Son cosas que por muy simple que parezcan son útiles.

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 01 Septiembre 2012, 13:02; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
jsbsan usalo no hay problema, como te acomode. Si vas tener que modificar un poco el codigo que te envie.
 



 
gara_pm - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayudita Con Un Arreglo De Objetos 
 
Gracias chicos, esto es fantastico, lo he solucionado con el ejemplo que ha hecho Julio en su blog
Public Sub Form_Open()

 Dim ObjTemp As Object
    
 Me.Center
 Me.Y = 0

 For Each ObjTemp In Me.Controls
    Select Object.Type(ObjTemp)
      Case "ComboBox"
         If ObjTemp.Name Like "cmbIngre*" Then ModCon.cargarIngredientes(ObjTemp)
      End Select
  Next

End
 

No solo puedo cargar datos en cualquier combo sino que creo que puedo ir mas allá.No se si podre con este metodo modificar el evento keyPress de todos los textBox, voy a probar y os cuento.
Creo que he hecho otro paso de gigante en aprendizaje de gambas(y en la programacion en general que soy novatoNovato) gracias a vosotros, y lo que mas me motiva es que cuanto mas se mas cuenta me doy que me falta mucho mucho.

Gracias.
Un Saludo.
 



 
aratar79 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Una Ayudita Con Un Columnview Cubel General 4 Viernes, 16 Abril 2010, 20:34 Ver último mensaje
Cubel
No hay nuevos mensajes Consulta Acerca De Una Matriz De Objetos: ... santijav General 6 Jueves, 21 Abril 2011, 05:14 Ver último mensaje
soplo
No hay nuevos mensajes Leer Un Arreglo De Datos Desde El Usb Ian General 4 Miercoles, 26 Noviembre 2014, 10:18 Ver último mensaje
jsbsan
No hay nuevos mensajes Una Ayudita Print Para Textarea Es Posible? portaro Aplicaciones/Fragmentos de Código 9 Sabado, 03 Febrero 2018, 21:58 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron