Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Invocar el asistente de impresión de Windows

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Invocar el asistente de impresión de Windows Responder citando

Hola a todos.
Imaginemos que tengo un scrollbox cargado con imagenes, y si yo selecciono varias de ellas, existe alguna forma de invocar/lanzar el asistente de impresión de windows??

Gracias a todos!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola Mario

Revisa la pestaña Dialogs... el componente TPrintDialog.

Saludos,
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias, pero eso no me sirve.
Yo me refiero a la ventanita que se ejecuta cuando seleccionas varias imagenes con el ratón y con el botón derecho seleccionas imprimir.
Si alguien sabe como hacerlo, gracias de antemano.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Código:
// Añadir: #include <ComObj.hpp>

Variant wiaDlg  = CreateOleObject("WIA.CommonDialog");
Variant wiaVect = CreateOleObject("WIA.Vector");

wiaVect.OleProcedure("Add", "c:\\dir\\imagen1.bmp");
wiaVect.OleProcedure("Add", "c:\\dir\\imagen2.bmp");

wiaDlg.OleProcedure("ShowPhotoPrintingWizard", wiaVect);

wiaDlg = wiaVect = Unassigned();


Más información:
[WIA CommonDialog Object]
http://msdn.microsoft.com/en-us/library/ms630492(VS.85).aspx
[WIA ShowPhotoPrintingWizard Method]
http://msdn.microsoft.com/en-us/library/ms630781(VS.85).aspx
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracial LEO por contestar, pero lo he probado y me da el error de que la clase es desconocida cuando lo ejecuto al pinchar sobre un boton. Si me puedes dar alguna pista.
Gracias de nuevo!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Tienes que descargar una dll (wiaaut.dll) y registrarla con "regsvr32" desde la siguiente dirección:

[Windows Image Acquisition Automation Library]
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=a332a77a-01b8-4de6-91c2-b7ea32537e29


Tienes una segunda opción sin necesidad de instalar ninguna librería, aunque más compleja:

http://msdn.microsoft.com/en-us/library/cc351041.aspx

(Si te interesa esta segunda y tienes algún problema avísame y pongo un ejemplo)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo, ya estuve investigando y me descargue la clase, y justo cuando me contaste el la duda ya lo estaba probando y funciona perfectamente. Gracias

Variant wiaDlg = CreateOleObject("WIA.CommonDialog");
Variant wiaVect = CreateOleObject("WIA.Vector");
wiaVect.OleProcedure("Add", "d:\\1.jpg");
wiaVect.OleProcedure("Add", "d:\\2.jpg");
wiaVect.OleProcedure("Add", "d:\\3.jpg");
wiaVect.OleProcedure("Add", "d:\\4.jpg");
wiaDlg.OleProcedure("ShowPhotoPrintingWizard", wiaVect);

wiaDlg = wiaVect = Unassigned;
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Saludos Mario, _Leo:

He probado el codigo que comentais:
///////////////////////////////////////////////////////////////////
// Añadir: #include <ComObj>
Variant wiaDlg = CreateOleObject("WIA.CommonDialog");
Variant wiaVect = CreateOleObject("WIA.Vector");
wiaVect.OleProcedure("Add", "c:\\dir\\imagen1.bmp");
wiaVect.OleProcedure("Add", "c:\\dir\\imagen2.bmp");
wiaDlg.OleProcedure("ShowPhotoPrintingWizard", wiaVect); <-- Falla!!!
wiaDlg = wiaVect = Unassigned();
//////////////////////////////////////////////////////////////////
pero me lanza una excepcion: EOleSysError, cuando se llama al OleProcedure del wiaDlg. Por lo visto no interpreta bien el Variant en la los TAutoArgs. He estado buscando información por internet y, se aconseja que se incluya la clase utilcls.h y/o que se integre en la directiva
del preprocesador el comando "WIN32". He probado ambas alternativas y no consigo solucionar el problema.

Si me pueden ayudar, se lo agradezco.

Un Saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

manmaz escribió:
pero me lanza una excepcion: EOleSysError, cuando se llama al OleProcedure del wiaDlg

Hola, has descargado y registrado la dll necesaria supongo. Que versión de C++Builder utilizas ? y que versión de Windows ?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola, uso XP sp3, y C++Builder 6, la dll la descargué del enlace que pusiste:

[Windows Image Acquisition Automation Library]
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=a332a77a-01b8-4de6-91c2-b7ea32537e29

y la registré usando: c:\> regsvr32 wiaaut.dll
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Te has asegurado que las líneas en las que seleccionas las imágenes apunten a archivos existentes?

wiaVect.OleProcedure("Add", "c:\\dir\\imagen1.bmp");

(Al señalar a archivos inexistentes es de la única manera que he conseguido reproducir el error)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo!!!:

La ruta estaba correcta, lo que ocurría, es que le puse unas imagenes
en jpeg!!!. Cambié el formato a bmp y todo funciona.

Muchas gracias por tu ayuda.

Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

He probado con las siguientes extensiones y no me ha dado ningún error: .jpg, .jpeg, .bmp, .tif y .png (la prueba la he hecho con el BCB6+Upd4 en Windows Vista+SP2)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

He hecho la prueba tambien con una imagen jpeg y me ha funcionado pero usando:

Código:

wiaDlg.Exec(Procedure("ShowPhotoPrintingWizard") << wiaVect);


muchas gracias, Leo!!!!!!.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.