https://foro.gambas-es.org/viewtopic.php?f=1&t=2078
-----------------------------------
wafo
Viernes, 09 Diciembre 2011, 17:52

Modularización y componentes ¿Cómo Se Hace?
-----------------------------------
Estimada comunidad, les presento mi inquietud...

quiero hacer un sistema de facturación, de hecho super simple, pero la idea básica, es hacerlo estilo VB6
un punto de entrada EXE (principal.exe) y luego todo lo demas por DLL (bibliotecas)...

he hecho un ejecutable gambas y un componente, para lograr hacer esto, pero no logro que ese componente me devuelva un valor, que de por si es true o false
me explico

login.gambas --> llama a menu principal (componente)
    - cierro el form login (.hide)
    - muestro menu principal (.showmodal)

el problema que dentro de menu principal tengo una opcion que se llama "cambiar de usuario", y cuando cierro el form no me retorna una variable que la envio en true, para que esconda menu principal
y muestre login.

siempre retorna false.


como nota: al ejecutar el componente como aplicacion, el valor si lo retorna ya sea true o false


pido a ustedes, que me den ideas, solucion(es)...=0)...., animo, ayuda y todo lo que se pueda necesitar para llevar a cabo mi pequeño proyecto.


-----------------------------------
jsbsan
Viernes, 09 Diciembre 2011, 19:20

Re: ¿Cómo Se Hace?
-----------------------------------
No entiendo mucho sobre tu planteamiento (componentes=dll  :?: )

Pero  ¿por que no usas varios formularios dentro de tu proyecto?, creo que es mas sencillo (y lo mas normal). 

Y pasar valores entre formularios, en el foro puedes encontrar mas informacion: [url=http://foro.gambas-es.org/viewtopic.php?f=4&t=2034]Enlace


Saludos

Nota:
Hice un manual sobre componentes, alli puedes ver como los usaba:[url=http://componentesgambas2.blogspot.com/2011/07/presentacion.html]Enlace


-----------------------------------
wafo
Viernes, 09 Diciembre 2011, 20:32

Re: ¿Cómo Se Hace?
-----------------------------------
amigo...gracias por responder...

te cuento...

en VB6, lo puedo hacer asi, es decir, un solo ejecutable (.EXE) y todo lo demas lo puedo hacer por librerias (DLL), y evito al maximo, meter muchos 
formularios en un solo ejecutable (.EXE)

entonces cuando empaqueto, tengo MUCHAS librerias (.DLL) y un solo ejecutable (.EXE).

esa es la idea que quiero con gambas.
tener un solo ejecutable y varios componentes, se entiende..???
por que la verdad NO QUIERO tener un solo ejecutable con TODOS los formularios ahi dentro.

entonces de ahi viene la "idea", "pregunta"...de como hacer...
un solo ejecutable gambas y que este "llame" a otros "componentes".

nota: ya he hecho las pruebas iniciales, y el tema me funciona, es decir, el ejecutable [b]login[/b] [b]carga (llama)[/b], al [b]componente menu principal[/b], hasta ahi todo bien, lo que no logro es devolver del [b]componente [/b]un valor true o false, para que el [b]ejecutable login[/b] me vuelva a pedir el acceso (usuario/password) o simplemente termine la ejecucion del sistema.



salu2


-----------------------------------
jsbsan
Viernes, 09 Diciembre 2011, 22:02

Re: ¿Cómo Se Hace?
-----------------------------------
Creo que ya lo tengo.

He hecho un componente "password", con una clase "password" que tiene una propiedad ".devolver" y un metodo ".iniciar" que muestra un formulario "Ftest"

[code linenumbers=false syntax=gambas]
' Gambas class file

EXPORT

PROPERTY devolver AS String
PRIVATE hdevolver AS String

PRIVATE FUNCTION devolver_Read() AS String

RETURN hdevolver
END

PRIVATE SUB devolver_Write(Value AS String)

hdevolver = value

END

PUBLIC SUB iniciar()
  
  FTest.Showmodal
  hdevolver = var.valor
  
END
[/code]

El formulario Ftest tiene el siguiente codigo:
[code linenumbers=false syntax=gambas]' Gambas class file

PUBLIC SUB Form_Open()
END

PUBLIC SUB Button1_Click()
IF TextBoxClave.text = "valido" THEN 
var.valor = "valido"
ELSE 
var.valor = "fallo"
ENDIF
ME.Close
END[/code]

Y hay un módulo "var", con el que se define la variable "valor" que es la que voy a usar para pasar el datos del  formulario y a la clase.
[code linenumbers=false syntax=gambas]' Gambas module file

PUBLIC valor AS String[/code]

Y luego tengo un proyecto que hace uso de ese componente: "comprobarpassword"
Que en su formulario Fmain tiene el siguiente codigo:
[code linenumbers=false syntax=gambas]
PUBLIC SUB Form_Open()
DIM a AS NEW password
a.iniciar()
PRINT a.devolver
END[/code]

Y con la orden print, devuelve "valido" o "fallo"

Creo que es mas o menos lo que quieres hacer...


Te adjunto dos archivos: uno es el componente "password" y otro el programa principal "comprobarpasswod"

[url=http://manualgambasenaleman.googlecode.com/files/comprobarPasword-0.0.1.tar.gz]comprobarPasword-0.0.1.tar.gz
[url=http://manualgambasenaleman.googlecode.com/files/password-0.0.5.tar.gz]password-0.0.5.tar.gz


-----------------------------------
wafo
Jueves, 05 Enero 2012, 21:01

Re: Modularización Y Componentes ¿Cómo Se Hace?
-----------------------------------
excelente es lo que justamente necesitaba.

muchas gracias.


una pregunta...=0)


que harias para hacer un sistema multiusuario, con un acceso concurrente de 50 pc activos y con un aproximado de 120 pc en total

 teniendo presente que los usuarios acceden desde window??
cual seria una buena configuracion??

este es mi escenario a implementar

SERVIDOR
- Server Linux
- MySQL
- FreeNX
- Apache
- Php

Clientes Windows
-NX Client


igual siento mucho temor de implementar esto, ya que he probado y he hecho "testing" haciendo el desarrollo mismo de una apliacion usando NX-Client y algunas
veces no se me dibujan los botones y otros controles y algunas veces no se ejecuta el NX-Client


opniones... =0)


y muy agradecido por su aporte


-----------------------------------
jsbsan
Viernes, 06 Enero 2012, 11:20

Re: Modularización Y Componentes ¿Cómo Se Hace?
-----------------------------------
wafo:


[quote]y algunas
veces no se me dibujan los botones y otros controles y algunas veces no se ejecuta el NX-Client...
[/quote]

Ahí no te puedo ayudar, nunca he hecho nada parecido, pero mejor es que crees otro tema en el foro, con un titulo que describa el nuevo tema que preguntas, algo así como "Problemas usando NX Client ", así alguno que lea ese tema, podrá verlo mejor, y ayudarte....

Tiene pinta de algún problema del refresco de la pantalla gráfica, lo mismo es que la conexión en la "intranet" no iba muy fluida.... seguramente tendrás que optimizar la configuración del NX-Clent y FreeNX para tu red...



He encontrado estos enlaces, a ver si te pueden ayudar:
[url=http://www.kriptopolis.org/freenx-acceso-remoto-escritorio-linux?page=4]http://www.kriptopolis.org/freenx-acceso-remoto-escritorio-linux?page=4
[url=https://help.ubuntu.com/community/FreeNX]https://help.ubuntu.com/community/FreeNX

Nota:
¿y porque no instalas gnu/linux en los 150 equipos????


