koke   08-10-2024, 02:28
#1
Buenas tardes, soy nuevo en lo que se refiere a programacion, me gusta la cocina y estoy haciendo un recetario, pero me detuve porque quiero ponerle fotografia a la receta y no se como hacerlo, he visto, muchos ejemplos pero ninguno dice como.  
   De antemano gracias al que responda.
   Aqui el ejemplo.

Código:
Private Conexion As Connection
Private Tablaaderezos As Result
Public Sub Form_Open()
Me.Center
Conexion = New Connection
Conexion.Type = "sqlite3"
Conexion.Host = "/home/jorge/Escritorio/recetariocompleto/"
Conexion.Name = "simple"
  Try Conexion.Open()
  If Error Then
    Message.Error("Error al conectarse a la base de datos")
    Conexion = Null
    Else
      Tablaaderezos = Conexion.Exec("Select * From aderezos")
      If Tablaaderezos.Available Then MostrarCampos
  Endif
End
Public Sub MostrarCampos()
 
  TextBox1.Text = Tablaaderezos["id"]
  TextBox2.Text = Tablaaderezos["nombre"]
  TextBox3.Text = Tablaaderezos["origen"]
  TextArea1.Text = Tablaaderezos["ingredi"]
  TextArea2.Text = Tablaaderezos["prepara"]
  TextArea3.Text = Tablaaderezos["basicos"]
  TextArea4.Text = Tablaaderezos["tips"]
  TextBox4.Text = Tablaaderezos["tiempop"]
  TextBox5.Text = Tablaaderezos["rinde"]
  PictureBox1
End

y aqui donde lo añado

Public Sub Button7_Click()
'botton ingresar
  Dim VarResult As Result
  VarResult = Conexion.Create("aderezos")
  VarResult["id"] = TextBox1.Text
  VarResult["nombre"] = TextBox2.Text
  VarResult["origen"] = TextBox3.Text
  VarResult["ingredi"] = TextArea1.Text
  VarResult["prepara"] = TextArea2.Text
  VarResult["basicos"] = TextArea3.Text
  VarResult["tips"] = TextArea4.Text
  VarResult["tiempop"] = TextBox4.Text
  VarResult["rinde"] = TextBox5.Text
  VarResult.Update
  Tablaaderezos = Conexion.Exec("Select * from aderezos")
  Dialog.Title = ("Añadir imagen a la base de datos")
  If Dialog.OpenFile() Then Return
  Conexion.Add(Dialog.Path)
  Conexion.Select()

y  aqui para buscar la foto a poner

Public Sub PictureBox1_MouseDown()
  PictureBox1.Stretch = True
  Dialog.title = "Seleccione un archivo para abrir"
  Dialog.Path = User.Name
  Dialog.Filter = ["*.jpg", "JPG", "*.png", "PNG", "*.bmp", "BMP"]
  If Not Dialog.OpenFile() Then
    PictureBox1.Picture = Picture[Dialog.Path]
  Endif
End

[Imagen: DiOYuTL.png]
Shordi   08-10-2024, 09:36
#2
Bienvenido Koke. En vez de subir ese código, en el que no es posible detectar funcionamientos, sube un pequeño proyecto donde se reproduzca el comportamiento que buscas (y que no te sale). Así es mucho más fácil averiguar cuál es el error.

Saludos.

No podemos regresar
koke   10-10-2024, 03:23
#3
Buenas tardes, envio en un archivo .zip lo que he hecho, necesito guardar una foto junto con la receta. de preferncia en un folder por aparte para no saturar la base de datos.    De antemano gracias.
Archivos adjuntos
.zip
ejemplo.zip (Tamaño: 918.84 KB Descargas: 2)
Shordi   10-10-2024, 13:00
#4
Aquí tienes tu proyecto con "algunas" modificaciones y que funciona.

Los cambios fundamentales han sido:
En la base de datos:
1.- Cambio del campo ID de Entero a Serial, asi se asigna una clave primaria única e incremental a cada registro en el momento de crearlo
2.- Cambio de los campos Blob a campos String ilimitados. Los campos Blob normalmente se reservan para almacenar datos binarios y tienen un tratamiento interno distinto.

En los fomularios:

1.- He añadido un botón que llama a ingreadere (no le he cambiado el nombre, pero es ahora el formulario de manejo de las recetas)
2.- He añadido un listado de recetas como sistema de búsqueda para su manejo
3.- He cambiado el campo id a readonly porque los campos Serial no se editan
4.- He asignado nombres significativos a los campos, porque eso de Button1, button2, etc es ininteligible
5.- He eliminado los menús de acción sobre el Registro porque es mucho más claro (lo tenemos a la vista) si se lo dejamos a los botones.
6.- He eliminado los botones de desplazamiento (siguiente, anterior, primero, último) por ser un sistema ineficiente cuando tienes muchas recetas y lo he sustituido por el manejo de la lista de recetas.

En ejecución:

1.- Se crea el entorno necesario en la primera ejecución del programa (carpetas y BD), en este caso el proyecto se llama "inicio" o sea user.home/inicio
2.- He adaptado la inserción de las fotos en la carpeta correspondiente
3.- He adaptado las acciones en sus botones y se ha sincronizado con la lista de recetas

Consejos:

Elimina todas las fotos de las carpetas del proyecto, que ya sabes que se compilan dentro del ejecutable y le dan un tamaño exagerado. En lo posible utiliza las imágenes del Stock para los botones y demás.
Por experiencia te digo que esas imágenes de fondo que colocas en fMain son muy cansinas para el usuario, teniendo además la mala costumbre de quedar feas si cambias el tamaño del mismo. Créate un logo con una IA, que hoy día está tirado y céntralo en la pantalla, que queda más chulo.

Y por último: Pásate por esta lista de vídeos que hice para casos como el tuyo, creo que te interesará:

https://www.youtube.com/playlist?list=PL...1HF1-Evp2o

Saludos
Archivos adjuntos
.zip
inicio-0.0.1.zip (Tamaño: 804.73 KB Descargas: 4)

No podemos regresar
koke   11-10-2024, 02:05
#5
Muchisimas gracias, las recomendaciones son excelentes. las voy a poner en pratica y cuando este armado por completo, te lo envio.
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.