Copiar y Pegar imagen en un control imagen

897 views
Skip to first unread message

Douglas Sánchez

unread,
Dec 2, 2015, 12:31:54 PM12/2/15
to publice...@googlegroups.com
Hola buen dias a todos.

Tengo una formulario en el cual tengo una imagen la cual no deseo capturar desde una ubicación por cuestion de agilización al operador.

He visto en algunas app en vfp que pueden copiar la foto de Ms Paint y luego Pegar en el control imagen, alguien hacer lo contrario copiarla de formulario vfp y pegarla en MsPaint.

Desde ya muchas gracias.

Saludes

DSANCHEZ

Elides Paredes

unread,
Dec 2, 2015, 8:14:26 PM12/2/15
to Comunidad de Visual Foxpro en Español


Saludos Amigo.
Daniel SANCHEZ


En realidad no entiendo bien lo que quieres hacer, pero con ésto puedo hacer lo último que dices. Lo contrario "copiarla de formulario vfp y pegarla en MsPaint"
pd. Copia todo lo que sigue en un prg y prueba, Claro!! no tienes las imágenes que yo tengo- Cambia la parte esa (nombre de Archivo)
Espero haberte ayudado. Lo tomé precisamente de aqui. El foro..


*PRG

* Ejemplo de Ejecutar un programa externo con Oshell
* La idea la tomé del Grupo 

* Ojo no seleccionar el 0 bloquea todo

#define SW_SHOW_HIDDEN 0
#define SW_SHOW_NORMAL 1
#define SW_SHOW_MINIMIZED 2  
#define SW_SHOW_MAXIMIZED 3

oShell = CreateObject("WScript.Shell") 

* Ahora hay que crear un texto que incluya el nombre del Programa (ejemplo: mspaint)*
* espacio y el nombre del archivo, algo como lo  que sigue

nombre = "mspaint.exe C:\estructuras\Blanca.jpg"
oShell.Run(nombre ,3, .T. ) && y solo con eso es suficiente para abrir paint con el archivo




**************************************************************************




*!* Otro ejemplo correr el NotePad (tamaño normal)
*!* oShell.Run(  "notepad.exe" , SW_SHOW_NORMAL, .T. )



*!* Otro ejemplo correr el NotePad, ahora con un archivo de texto
*!* oShell.Run("notepad.exe C:\estructuras\- Aqui quede.txt",3, .T. ) 

* como el de arriba, pero maximizado y 
* en lugar de poner la variable definida 
* (SW_SHOW_MAXIMIZED)
* coloco su valor 3 
                                    

* Al definir  SW_SHOW_MAXIMIZED 3, puedo poner la variable  SW_SHOW_MAXIMIZED o 3 y
* me funcionó bien. Lo importante es crear el objeto y mandar los parámetros.




* --------------- Otro Ejemplo bajado del Grupo -------------------------

*!* *--------------------------------------------------- 
*!* FUNCTION Ejecuta(cComando, iStatus) 
*!* *--------------------------------------------------- 
*!* Esta funcion ejecuta un comando de DOS indicado como primer parámetro.
*!* El segundo parámetro es el estilo de la ventana a utilizar, ver el sig. listado 
*!* Estilo Ventana        Descripción 
*!*  0        Oculta la ventana y activa otra. 
*!*  1        Activa y muestra una ventana. Si la ventana está minimizada o 
*!*          maximizada, el sistema la restaura con su posición y tamaño 
*!*          originales. Una aplicación debe especificar este indicador cuando 
*!*          muestre la ventana por primera vez. 
*!*          
*!*  2        Activa la ventana y la muestra minimizada. 
*!*  3        Activa la ventana y la muestra maximizada. 
*!*  4        Muestra una ventana con su tamaño y posición más recientes. La 
*!*          ventana activa permanece activa. 
*!* 5        Activa la ventana y la muestra con su tamaño y posición 
*!*          actuales. 
*!* 6        Minimiza la ventana especificada y activa la siguiente ventana 
*!*               de mayor nivel en orden Z. 
*!* 7        Muestra la ventana minimizada. La ventana activa permanece activa. 
*!*
*!* 8        Muestra la ventana en su estado actual. La ventana activa 
*!*           permanece activa. 
*!* 9        Activa y muestra la ventana. Si la ventana está minimizada o 
*!*          maximizada, el sistema la restaura con su posición y tamaño 
*!*          originales. Una aplicación debe especificar este indicador cuando se 
*!*          restaure una ventana minimizada. 
*!* 10       Establece el estado de presentación a partir del estado del 
*!*      programa que inició la aplicación. 
*!* *---------------------------------------------------- 

*!* TRY 
*!*        oShell = createobject("WScript.Shell") 
*!*        oShell.Run(cComando,iStatus,.T.) 
*!* CATCH TO xEcepcion 
*!*        lsErrorEcepcion = "No se pudo ejecutar: "+cComando+ " 
*!* RS:"+TRANSFORM(xEcepcion.ErrorNo) + _CRLF_+  "Mensaje: " + 
*!* xEcepcion.Message 
*!*        Logger(lsErrorEcepcion) 
*!* FINALLY 
*!*        * 
*!* ENDTRY 


*!* ENDFUNC 

Douglas Sánchez

unread,
Dec 3, 2015, 9:34:48 AM12/3/15
to publice...@googlegroups.com

Gracias Elides Paredes

Lo que pretendo es que el usuario recorte la imagen en Paint y le de copiar estando en MS paint y luego la pegue la imagen en un control imagen, ya que es mas rapido que darle guardar como poner un nombre eso es mas atraso, hace rato vi un Sistema en vfp no recuerdo quien publico aca tenia un video de youtube en donde hacia eso.

Saludes.

Dsanchez =  Douglas Sanchez. lol me confunden con el señor Daniel Sanchez.

Elides Paredes

unread,
Dec 3, 2015, 10:00:20 AM12/3/15
to Comunidad de Visual Foxpro en Español


Estimado amigo.

Pienso que es mejor vfppaint, yo lo uso y me parece una de las mejores herramientas. Puedes abrir una imagen editarla y guardarla en la carpeta que desees, con el nombre que desees y lo mejor (para mi) es que no sales de VFP, o de mí sistema. Modifique el programa y con un botón le inserto una imagen, (como si le pusiera un sello con un logo, para personalizar la imagen).  Y si se guarda al actualizar el formulario, el control imagen quedará con la imagen 
ya editada, no tendría que copiar y pegar.

VFPPAINT tiene además funciones que permiten agregar formas, lineas, textos a la imagen. En fin es genial.(ah,,! y es gratis)


En realidad a mi me costó aaaños implementarlo porque no sabía como, pero para mi su creador es un verdadero genio.

Saludo amigo.

Elides Paredes
Barquisimeto Venezuela

Antonio Meza

unread,
Dec 3, 2015, 10:15:21 AM12/3/15
to Comunidad de Visual Foxpro en Español

Jorge Zapata

unread,
Dec 3, 2015, 10:50:15 AM12/3/15
to Comunidad de Visual Foxpro en Español

Hola DSANCHEZ, te comparto el link, creo que busca controlar la imagen que capturas, te he preparado un demo, he tratado de que seha explicativo, su implementacion con solo un par de lineas de codigo y utilizando ocx,  tiene muchas aplicaciones yo lo utilizo para enviarme captura de pantalla de error como adjunto al correo, si te sirve me comentas.


https://www.dropbox.com/s/jb38995vkfxkglg/demo.rar?dl=0


PD. no olvidar registar el ocx.
regsvr32  C:\Demo\Captura.ocx


Saludos,
demo_Captura.png

Jorge Zapata

unread,
Dec 3, 2015, 10:56:35 AM12/3/15
to Comunidad de Visual Foxpro en Español
DSACHEZ,  pegue mal el link con el form demo, este es el correcto:

https://www.dropbox.com/s/jb38995vkfxkglg/demo.rar?dl=0


Saludos y suerte,

Douglas Sánchez

unread,
Dec 3, 2015, 11:15:11 AM12/3/15
to publice...@googlegroups.com
ok, muchas gracias, Elides, Antonio y Jorge voy a probar.

Saludes

Douglas Sánchez

Elides Paredes

unread,
Dec 3, 2015, 11:18:16 AM12/3/15
to Comunidad de Visual Foxpro en Español
ah..! otro detalle, como el programa no sale de mi aplicación, yo le asigno el nombre de una vez, es decir, busco la imagen, la presenta y la edita, luego la guarda o bien con el mismo nombre o con el nombre que yo quiero,
En fin si no  has  visto la aplicación revísala, Desde mi punto de vista es muy buena,,!
También hay un algoritmo que permite capturar la pantalla completa o la ventana activa dentro de la venta y la guarda en el portapapeles, No lo tengo 'a la mano' pero si te interesa y no lo consigues avísame.



Douglas Sánchez

unread,
Dec 3, 2015, 11:20:06 AM12/3/15
to publice...@googlegroups.com

Claro pero no es lo mismo desde Ms Paint control +c y control + v en vfp que atrasar al usuario cuando son grandes cantidad de datos.
darle guardar buscar la imagen eso atrasa.

Saludes

Daniel Sánchez

unread,
Dec 3, 2015, 11:49:10 AM12/3/15
to Comunidad de Visual Foxpro en Español
Hola Douglas, seria interesante saber cual es el motivo de tu requerimiento, cual es la problemática y ver si la solución que comentas es la más apropiada o algunas de las que ya te propusieron se adapta, sin entender bien cual es tu escenario hay muchos tiros pero ninguno puede dar en el blanco.

Saludos
--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047 RPM #948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

Douglas Sánchez

unread,
Dec 3, 2015, 1:43:53 PM12/3/15
to publice...@googlegroups.com
Hola Daniel

Se pretende poner imagen a Productos al menos un 80%, la mayoria ya conoces el productos y sabe por nombre que tipo de productos va asociar.
1 Hay un Catalogo de Productos ya esta en uso el Sistema.

2 Hay miles de imagenes, fotos se visualiza con MsPaint u otro editor de imagen y luego se copia a un formulario vfp, esto no esta aun, yo lo vi en un sistema en vfp, Porque hacer esto ya que seria mas dilatado ir a buscar la imagen  luego ir a buscar el producto sino como ya estna en orden las imagen numerada foto1 foto2, foto3 foto4, se va seleccionando una imagen y se busca el productos y pegar la imagen.

No he encontrado la forma de Hacerlo.

De vfp a otro si se puede alguien me paso un ejemplo, pero lo que quiero es de otro visualizador de imagen copiar y pegar en form vfp. adjunto ambas imagen.

Saludes Daniel Sanchez desde ya gracias.


Dsanchez





Daniel Sánchez

unread,
Dec 3, 2015, 2:34:09 PM12/3/15
to Comunidad de Visual Foxpro en Español
Con 

CNAMEFOTO = Getfile("jpg;bmp;gif;tif", "Seleccione la Imagen", "Abrir", 0, "Imagenes")

podrías ver las imágenes lo pones en vista de iconos grandes y te va ha dar una vista previa de cada archivo imagen, una vez ubicas tu archivo bien grabas la ruta o lo grabas en tu tabla de productos como desees, no necesitas tener paint u otro programa para ver la imagen copiar y pegar, me parece que seria más práctico, al menos me parece que seria una mejor opción.

Saludos

Jorge Zapata

unread,
Dec 3, 2015, 3:18:35 PM12/3/15
to Comunidad de Visual Foxpro en Español

Hola DSANCHEZ, me parece interesante modifique el form demo, partiendo de que ya tienes la imagen en el portapales la puedes guardar utilizando la clase GDIPlusX de Cesar Chalom,  (Ejemplo del portapapeles a un archivo PNGpor LMG)

puedes bajar el demo de

https://www.dropbox.com/s/ptgsr1bj50zbbfg/demo2.rar?dl=0


Me comentas si es lo que buscabas y suerte,




demo_form_Captura_portapales.png

Jorge Zapata

unread,
Dec 3, 2015, 3:24:56 PM12/3/15
to Comunidad de Visual Foxpro en Español

DSANCHEZ,  este es el link de descarga. con el form demo corregido,
 
https://www.dropbox.com/s/ptgsr1bj50zbbfg/demo2.rar?dl=0

Saludos

Antonio Meza

unread,
Dec 3, 2015, 3:32:56 PM12/3/15
to Comunidad de Visual Foxpro en Español
Jorge esta buenísimo solo ajuste las rutas y a la primera!!!

Felicidades y gracias por compartir, 

saludos
Antonio Meza

Douglas Sánchez

unread,
Dec 3, 2015, 3:33:05 PM12/3/15
to publice...@googlegroups.com

Muchas gracias Jorge Zapata, distes en el punto, en realidad eso es Pegar desde el Porta papel la imagen, excelente.

Claro yo lo voy a remendar con un clic derecho Pegar, algo asi un menu, aunque con el boton es mas rapido.

SAludes

Dsanchez
Reply all
Reply to author
Forward
0 new messages