Visual Basic - guardar con CommonDialog

Life is soft - evento anual de software empresarial
 
Vista:

guardar con CommonDialog

Publicado por vibet (25 intervenciones) el 20/01/2005 22:36:01
Muy buenas estoy intentando guardar una imagen en mi disco y no se donde me falla, os dejo el código gracias

Private Sub Command2_Click()
On Local Error Resume Next
CommonDialog2.CancelError = True
CommonDialog2.DefaultExt = "*.jpeg"
CommonDialog2.Filter = "Imágenes|*jpeg,.*gif,*.img,*.bmp"
CommonDialog2.FileName = sArchivo
If CommonDialog2.FileName <> "" Then
Picture1(0).Picture = LoadPicture(CommonDialog2.FileName)
CommonDialog2.ShowSave
End If
If Err Then
'Cancelada la operación de guardar
Else
sArchivo = CommonDialog2.FileName
End If
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:guardar con CommonDialog

Publicado por Benjo (679 intervenciones) el 20/01/2005 22:43:43
El control CommanDialog, es s´olo un Cuadro de Diálogo Común para prmitir al usuario acceder a los recursos del sistema sin tener que esta manipulando las API de Windows, pero no realizan acciones como guardar un documento o archivos de imagne, sólo te proveen de un Path o Dirección para guardar dicha imagen.
Utilizando todo el código que vos escribiste, luego de la sentencia
CommonDialog2.ShowSave
al elegir un Directorio y un nombre de Archivo, la propiedad CommonDialog2.FileName te devuelve el Path completo y el nombre del archivo con la extensión

El verdadero código para guardar una imagen es

SavePicture Image, CommonDialog2.FileName
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar con CommonDialog

Publicado por vibet (25 intervenciones) el 21/01/2005 00:11:27
Perdoname basándome en el código que he puesto antes donde tendría que poner tu sentencia, lo pruebo y no soy capaz, lo siento
SavePicture Image, CommonDialog2.FileName , el problema es que me devuelve un número????
perdona mi novatada, si tuvieras algún codigo que me permitiera guardar una imagen para luego exportarla a excel te lo agradecería un montón,llevo un montón de tiempo intentandolo.... y nada
gracias

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar con CommonDialog

Publicado por Benjo (679 intervenciones) el 21/01/2005 12:19:14
Vibet, SavePicture es una función y por lo tanto está diseñada para recibir los parámetros ya fijados.
Cuando yo escribí:
SavePicture Image, CommonDialog2.FileName

No me refería literalmente a una constante Image, sino a la imagen que vos querés guardar, la cual supongo está en un picture o en un control Image. Abajo coloco un ejemplo simple de como hacerlo. Tené en cuenta que yo le agrego ".bmp" para que lo guarde con esa extensión, pero si en el CommonDialog, vos ya escribís la extensión, se superpondrían las dos "Titulo.Bmp.Bmp", Debés verificar eso con la función MID.

Private Sub Command1_Click()
CommonDialog1.ShowSave
'Este código guarda toda la imagen del Picture.
SavePicture Picture1.Picture, CommonDialog1.FileName & ".bmp"
'Este código guarda sólo la imagen visible del Picture.
SavePicture Picture1.Image, CommonDialog1.FileName & "2.bmp"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar con CommonDialog

Publicado por vibet (25 intervenciones) el 21/01/2005 16:15:49
Gracias benjo! mira todo esto del common lo hago porque no se cómo enviar una imagen desde acces y estoy buscando alternativas, utilizo el siguiente código y con los txt me va pero no con la imagen del picture
Dim I As Integer
Dim xExcel As Excel.Application
Dim wBook As Workbook
Dim cadenaCOD As String
Dim cadenaEQUIPO As String
Dim cadenaNOMBRE As String
Dim cadenafoto As picture
cadenaCOD = Me.lblCodigocli.Caption
cadenaNOMBRE = Me.txtnombre.Text
cadenaEQUIPO = Me.txtEQUIPO.Text
cadenafoto ='QUE PONGO AQÍ????
Set xExcel = New Excel.Application
xExcel.Workbooks.Add App.Path & "\ACREDITACION.xlt"

Me.MousePointer = vbHourglass
xExcel.Range("c7").Select
xExcel.ActiveCell.FormulaR1C1 = cadenaNOMBRE
xExcel.Range("c11").Select
xExcel.ActiveCell.FormulaR1C1 = cadenaEQUIPO
xExcel.Range("c9").Select
xExcel.ActiveCell.FormulaR1C1 = cadenaCOD
xExcel.Range("E9").Select
xExcel.ActiveCell.FormulaR1C1 = cadenaFOTO
GRACIAS OTRA VEZ

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar con CommonDialog

Publicado por Benjo (679 intervenciones) el 21/01/2005 20:31:24
No me queda en que partre del código estás usando Access, igualmente, suponiendo que quieras levantar una imagen desde un archivo, entonces
"cadenafoto ='QUE PONGO AQÍ???? "

A cadena foto vos la declarás como Picture y debería ser como stdPicture, además las imágenes son tratadas como objetos y por lo tanto su asignación no puede ser como se hace comunmente con un string, debe realizarse con la instrucción Set

En este ejemplo, puse un pictureBox vacio en un formulario y luego en el evento load
Private Sub Form_Load()
Dim cadenafoto As New StdPicture
'Vos ponele el path que desees.
Set cadenafoto = LoadPicture("D:\Documents and Settings\Benjo\Escritorio\Inicio.jpg")
Set Picture1.Picture = cadenafoto
End Sub

Si lo querés hacer con access, informá si abrís la base con DAO o con ADO
Bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar con CommonDialog

Publicado por vibet (25 intervenciones) el 22/01/2005 20:11:40
la base la abro por medio de ado
sbase = "c:\visualBasic\compartido\asidep.mdb"
Set db = OpenDatabase(sbase)
Set Rst = db.OpenRecordset("SELECT * FROM CLIENTES where codigo = " & frmClienPrinci.grdClientes.TextMatrix(frmClienPrinci.grdClientes.Row, 0) & " ")
así abro la base lo que no se es como mandar la foto a excel
las estoy guardando como abjeto ole
gracias benjo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar