Spanish Censo de usuarios de Basic4Android

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Soy Jesús, aunque el nick sea bgsoft. Me parece estupenda la idea. En la medida en la que pueda contar conmigo. En b4a soy nuevo, pero con bastante experiencia en VBasic y otros lenguajes.
Habitualmente cuando tengo un problema hago la consulta aqui y en el general, y lo que hago es que si alguien de alguno de los dos foros da una solucion, la pongo en el otro, por que espero que si alguien ha tenido mi problema no se mate buscando como yo.

Por otro lado habria que hacer fuerza (por ahora no se como) para que google abra mas ciertas cosas, mi ejemplo mas reciente es como parar/poner en marcha por código, GPS y modo avión, Erel me contestó que no se puede, y Informatix me dijo que era un problema de la politica de seguridad de Google (¿?), creo que para que un lenguaje pueda competir y seguir subiendo, no se puede poner trabas al trabajo que intentamos hacer. Y si Android nace de la filosofia de Linux de avanzar en los estándares abiertos de los dispositivos móviles, tenemos que tener todas las herramientas para poder desarrollar libremente.

Perdonar por el rollo :signOops:

Saludos

Jesús
(España)
 

iBob

New Member
Licensed User
Longtime User
Buenas. Solo quería presentarme.
Mi nombre es Roberto; de Florida, Uruguay.
Soy nuevo tanto en Basic4Android como en el foro.
Soy programador desde hace 15 años, desarrollo para la Web y Escritorio, desarrollé algunas apps para iOS y Android en XCode y Java sucesivamente, pero también algunas en ActionScript 3 y Corona. En lo personal JAVA no me gusta para, y debido a esto decidí comenzar a probar Basic4Android ya que hace muchos años di uso intensivo a Visual Basic y pensé que sería bastante fácil de usar, y bueno, lo probé y la verdad que me gustó mucho. Así que bueno, agradezco el espacio y espero poder "copiarles algún código" y poder colaborar en lo que pueda.
Saludos desde Florida, Uruguay,
Roberto.
 

desof

Well-Known Member
Licensed User
Longtime User
Otro desde Argentina

Hola amigos soy nuevo en esto limitado en Ingles pero con 15 años de experiencia en VB y con muchas ganas de aprender.
Saludos y gracias por el espacio.
 

walterf25

Expert
Licensed User
Longtime User
B4A En Espanol

Hola me llamo Walter y resido en los Angeles, USA, solo queria presentarme, usualmente pongo mis preguntas en el foro en ingles, pero si hay halguien que necesite ayuda aca solamente mandenme mensage, me encanta B4A ya tengo varias aplicaciones en el mercado google, y me encanta.

Buenas Tardes,
Walter
 

desof

Well-Known Member
Licensed User
Longtime User
hola amigo me seria de mucha utilidad si estas dispuesto a ayudarme y compartir algun codigo qye pueda implementarlo en el mercado argentino!!
A MI TAMBIEN ME ENCATA ESTE LENGUAJE!!!
 

desof

Well-Known Member
Licensed User
Longtime User
sobre tu consulta

Hola, dame un ejemplo de codigo que necesitas y yo vere si puedo ayudarte.

Gracias,
Walter

ok! bueno como te puse en mp soy muy nuevo en esto pero no me resulta tan dificil lo que respecta al codigo por que conoeco muy bien vb6. Pero ahi termina mi conocimiento.
Creo que la mejor forma de aprender es en un caso practico real y se me ocurrio hacer una aplicacion para ventas en un buffet y reemplazar la venta manual que hace un cajero en buffet.
Que seria basicamente viene un cliente y le dice quiero un Cerveza y 3 Empanadas y le cobra y el tiquet qye tiene ese monto y lo que pidio!

Asi qye la aplicacion seria para automatizar ese proceso sobre una grilla de botones con imagenes de productos y que al presionar un producto una vez lo cargue al¡ la venta y si quiere 2 presione do2 veces el mismo alli se habilita el boton de la impresora y se da imprimir y listo! retira el tiquet y le cobra.

Espero ser calro
 

walterf25

Expert
Licensed User
Longtime User
Entiendo el concepto, pero no entiendo como quieres hacerlo, quieres usar un telefono oh una tableta, y como quieres conectar la tableta o telefono a la impresora para imprimir el recibo?
 

desof

Well-Known Member
Licensed User
Longtime User
Entiendo el concepto, pero no entiendo como quieres hacerlo, quieres usar un telefono oh una tableta, y como quieres conectar la tableta o telefono a la impresora para imprimir el recibo?

No tengo Tableta para probarlo pero seria ideal que funcione para los 2 dispositivos he visto algunos ejemplos que adaptan la vista de acuerdo a la resolucion!. Yel tema de la impresora he visto tambien un ejmplo que imprime a una impresora Blotou o WIFI.
 

walterf25

Expert
Licensed User
Longtime User
Ok, te entinedo, ok en ese caso seria facil, primero tendrias que disenar como quieres que se vea los botones en la pantalla y asignar una funcion a cada boton, me imagino que tienes una idea como hacerlo ya que sabes VB6, trata de poner un ejemplo y si necesitas mas ayuda yo te ayudo, usualmente es muy dificil escribir el codigo para otros en el forum ya que muchos de nosotros estamos ocupados con nuestros propios proyectos la idea es de ayudar pero si ya tienes halgun codigo escrito y si te trabas pues nosotros te ayudamos.

para empezar puedes seguir este codigo y agregarle tus propias ideas

B4X:
Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.
Dim button1, button2, button3  As Button    'declara los botones que vas a usar
dim cerveza as int
dim empanadas as int
dim carneasada as int
End Sub

Sub Activity_Create(FirstTime As Boolean)
   'Do not forget to load the layout file created with the visual designer. 
button1.Initialize("button1")   'inisializa los botones
button2.Initialize("button2")
button3.Initialize("button3")

Activity.AddView(button1, 0, 0, 200dip, 50dip)   'agrega el primer boton a la actividad
Activity.AddView(button2, 220dip, 0, 200dip, 50dip)   'agrega segundo boton
Activity.AddView(button3, 55, 0, 200dip, 50dip)   'agrega terce boton

End Sub


Sub button1_Click    'agrega tu propio codigo para cuando el primer boton sea oprimido
cerveza = cerveza + 1
msgbox("Has ordenado " & cerveza & " cervezas", "Cervezas")
End Sub


Sub button1_Click    'agrega tu propio codigo para cuando el segundo boton sea oprimido
empanadas = empanadas + 1
msgbox("Has ordenado " & empanaddas & " empanadas", "Empanadas")
End Sub

La idea es esta, pruebalo y si funciona puedes idearte y agregar mas cosas, en cuanto a imprimir el recibo eso es un poco mas complejo pero empezemos por lo basico.
 

desof

Well-Known Member
Licensed User
Longtime User

Entiendo, muchas gracias por tu apoyo entonces ahora dime por que la idea es que la cantidad de botones se debe crearse de forma dinamica por que pensando en que un dia pueda comercializar la aplicacion otros personas tendrian otras demandas entonces la idea es empezar leyendo de un BD los articulo filtrados por categorias y mostrarlos y que cargue tantos botones como articulos haya en esa categoria seleccionada.

Para esto no se puede trabajar con matreiz de controles como en VB6 ??

Boton(0).caption=0
Boton(1).caption=1

Y los botones se pueden crear de forma dinamica desde el codigo en un bucle ?
For n=0 to Ubound(Articulos)
Load Boton(n)
next
 

walterf25

Expert
Licensed User
Longtime User
Ayuda

Claro que si se puede hacer asi como VB6
La mejor manera seria de crear una Class para crear cuantos botones quieras, para esto te aconsejo que leas un poco mas acerca de Classes en el foro.
para agregar el texto a un boton especifico se hace asi

B4X:
boton1.Text = "Cerveza"
boton2.Text = "Empanadas"
boton3.Text = "Carne Azada"

La idea de crear una clase es la misma como en VB6 una vez echa la Clase la puedes llamar desde tu Main Activity, y especificar cuantos botones quieres agregar dinamicamente a la actividad.

Espero que me entiendas, te escribo en espanol pero pienso en Ingles, lol.
 

desof

Well-Known Member
Licensed User
Longtime User

jaja !! si perfecto te entiendo!! buenisimo ! Entonces voy a leer un poco mas de las clases pero podria crear la clase en Visual Basic y luego ver de adpatarla.

En realidad no comenze por que estoy tratando de ensamblar todo en mi mente para ponerme a trabajar!!.

gracias!! Walter por hoy no te molesto mas
 

aexelm

New Member
Licensed User
Longtime User
Otro Mas de habla hispana

Bueno amigos, apenas llevo dos días de haber comprado la licencia Estandar luego de probar por cerca de 3 dias el Trial. Estoy empezando pero para mi que poco o casi nada conozco de Java, B4A me parece muy bueno es por eso que me decidí a comprarlo.
Por el momento mas que aportar sería "abusar" de quienes ya tienen experiencia, sin embargo, el camino es largo.
Desde Colombia me doy la bienvenida yo mismo!!!
 

charro98120165

Member
Licensed User
Longtime User
ayuda con codigo

E intentado traducir un codigo de vb .net a b4a pero por mas que e intentado no e podido me podrian ayudar a traducirlo? de hecho si me pueden hacer un presupuesto de cuanto me cobrarian por traducirlo pues nos pondriamos de acuerdo.

saludos

este es el codigo a convertir.

B4X:
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Net
Imports System.Net.Sockets


Namespace ConsoleApplication1
    Class Program
        Private Shared Sub Main(ByVal args As String())
            'Declaro la cadena sin la longitud
            Dim mensaje As String = "1:1;2:0001;3:CAJA1SUC1;4:1C-6F-65-5C-5B-30;5:APHSUC1;6:VT;7:0001;8:20111123;9:143610;10:4431573622;11:1000"
            'Indica que el mensaje no va encriptado
            Dim encriptar As [Byte]() = Encoding.ASCII.GetBytes("N")
            'delcaro mi entero que almacena la longitud de mi cadena.
            Dim longitud As Integer = mensaje.Length
            Dim SendBytes As [Byte]() = Encoding.ASCII.GetBytes(mensaje)
            'agrego un arreglo de bytes para enviarlo al socket
            'No hay que convertir el entero a string (ej. el 0 ascii es el entero 48)
            'tambien hay que usar IPAddress.HostToNetworkOrder 
            'ya que microsoft utiliza un orden de bytes little-endian y java utiliza el big-endian
            '(ej. el 987 en un endian puede ser 620560384 en otro endian)
            Dim SendBytesLongitud As [Byte]() = BitConverter.GetBytes(IPAddress.HostToNetworkOrder(longitud))

            'Para leer la longitud de respuesta
            Dim RecvBytesLen As Byte() = New Byte(3) {}

            Dim ipaddr As IPAddress = System.Net.IPAddress.Parse("192.168.1.68")
            Dim Ep As New IPEndPoint(ipaddr, 9099)

            Dim socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
            Try
                socket.Connect(Ep)
                'envío primero la longitude la cadena
                socket.Send(SendBytesLongitud, 0, SendBytesLongitud.Length, SocketFlags.None)
                'enviar si hay que encriptar
                socket.Send(encriptar, 0, encriptar.Length, SocketFlags.None)
                'una vez enviada la longitud, envío la cadena
                socket.Send(SendBytes, 0, SendBytes.Length, SocketFlags.None)

                'Recibe la longitud de la respuesta
                socket.Receive(RecvBytesLen, RecvBytesLen.Length, SocketFlags.None)
                'hace la coversion de los bytes de big-endian a little-endian
                Dim lenlittle As Byte() = ReverseBytes(RecvBytesLen)

                'Recerva el espacio para recibir el mensaje de respuesta             
                Dim RecvBytes As [Byte]() = New [Byte](BitConverter.ToInt32(lenlittle, 0) - 1) {}
                'Recibe el mensaje
                socket.Receive(RecvBytes, RecvBytes.Length, SocketFlags.None)
                Dim respuesta As [String] = Encoding.ASCII.GetString(RecvBytes, 0, RecvBytes.Length)

                Console.WriteLine(respuesta)

                Console.ReadLine()
            Catch [error] As Exception
                Console.WriteLine("Ha ocurrido un error: " & Convert.ToString([error]))
                Console.ReadLine()
            End Try

        End Sub
        Private Shared Function ReverseBytes(ByVal inArray As Byte()) As Byte()
            Dim temp As Byte
            Dim highCtr As Integer = inArray.Length - 1

            For ctr As Integer = 0 To inArray.Length \ 2 - 1
                temp = inArray(ctr)
                inArray(ctr) = inArray(highCtr)
                inArray(highCtr) = temp
                highCtr -= 1
            Next
            Return inArray
        End Function
    End Class



End Namespace
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…