PDA

Ver la Versión Completa : Guardar configuración de PrinterSetupDialog


BlueSteel
05-07-2007, 21:43:18
Hola Amigos...

andaba buscando info sobre como almacenar la configuración que realizo en el TPrinterSetupDialog, ya que cuando le doy imprimir... esta toma los valores por defecto que tiene el pc.. y no los que les di a cuadro de dialogo PrinterSetupDialog1..

espero me puedan ayudar...

en realidad.. mas que almacenar... es mantener las opciones que elegí como las predeterminadas....espero me entiendan...

estoy usando el QReport que viene con el Delphi 7

Neftali [Germán.Estévez]
06-07-2007, 10:02:46
TPrinterSetupDialog, al igual que los otros diálogos, no asigna las opciones que se seleccionan; Debes asignarlas tú una vez que se cierra el diálogo. Para que me entiendas este componente te permite seleccionarlas de una forma fácil, y una vez que lo cierras en sus propiedades tienes todos los valores. Inmediatamente después de cerrarlo debes hacer las asignaciones por código.

BlueSteel
06-07-2007, 15:49:38
oka...

buscare como hacer el traspaso por codigo...

gracias:D

eduarcol
06-07-2007, 16:19:27
Por Ejemplo


QuickRep1.PrinterSettings.Copies:= PrinterSetupDialog1.Copies;

marcoszorrilla
06-07-2007, 18:12:38
Sino quieres guardarlas de una sesión para otra, también puedes utilizar variables globales de la aplicación y guardar los valores en ellas. Yo me inclinaría más por un fichero Ini.

Si el fichero Ini no existe, presentamos el diálogo de impresión.
Un Saludo.

roman
06-07-2007, 18:13:00
TPrinterSetupDialog, al igual que los otros diálogos, no asigna las opciones que se seleccionan; Debes asignarlas tú una vez que se cierra el diálogo. Para que me entiendas este componente te permite seleccionarlas de una forma fácil, y una vez que lo cierras en sus propiedades tienes todos los valores. Inmediatamente después de cerrarlo debes hacer las asignaciones por código.

No sé si te estoy entendiendo bien, pero creo que esto no es del todo cierto. El PrinterSetupDialog permite, por ejemplo, seleccionar la impresora donde se va a imprimir, o la orientación del papel, y eso se refleja de inmediato sin tener que hacer ninguna asignación. De hecho, el componente no parece tener propiedades que puedan leerse para su uso posterior.

Otra cosa es que esos cambios no se preservan una vez terminada la aplicación y no se reflejan en otras aplicaciones, esto es, son sólo cambios para la sesión.

// Saludos

Neftali [Germán.Estévez]
06-07-2007, 18:22:40
Pues tienes razón Román. En este caso yo estaba pensando en TPrintDialog, y el comentario respecto a TPrinterSetupDialog es incorrecto, pues como muy bien dices no dispone de esas propiedades.

En ese caso no entiendo la pregunta.

roman
06-07-2007, 18:31:56
En ese caso no entiendo la pregunta.

No pues, yo creo que sí la entiendo, pero no sé cómo resolverla :D :o Digamos que el usuario escoge la impresora Epson-Laser. Si el sistema tiene la HP-Deskjet como impresora por defecto, el usuario tendrá que escoger la Epson cada vez que ejecute la aplicación. Éso es lo que se quiere evitar.

// Saludos

marcoszorrilla
06-07-2007, 18:33:26
Yo entiendo, que como QuickReport no utiliza el mismo objeto Printer que PrinterSetUp diálogo, a parte de tomar las asignaciones del uno transferirlas al otro, se trata de evitar este paso cada vez que el usuario decida imprimir. ???

Un Saludo.

BlueSteel
09-07-2007, 17:07:59
hola nuevamente

todavia sigo con el problema.. estube todo el fin de semana tratando de buscar info de como pasar (o mejor dicho dejar como predetermina) la configuración seleccionada en el PrinterSetupDialog.. y no he encontrado nada....

alguien tiene la forma de poder hacer esto...

necesito... predeterminar la impresora, con el tipo de papel y la orientacion....
no se si tiene opciones de copia...

marcoszorrilla
09-07-2007, 19:26:30
Yo utilizo esta función para recuperar la impresora que voy a utilizar para facturar de una tabla en donde guardo su nombre:


Function GetImpresora(Impre:String):Integer;
Var
nCont:Integer;
lSearch:Boolean;
cNewLIne:String;
begin
lSearch:=False;
cNewLine:=Chr(10)+Chr(13);

For nCont:=0 to Printer.Printers.Count - 1 do
//buscamos la impresora en la lista del sistema
begin

if Pos(impre, Printer.Printers[nCont]) <> 0 then
begin
lSearch:=True;
Result:=nCont;
Break;
end;

end;

if lSearch = False then
begin
nCont:=-1;
Result:=nCont;
ShowMessage('Impresora no encontrada:'+cNewLine+Impre+cNewLine+'Se utilizará la predefinida.');
end;

end;

Si en vez de una tabla, utilizas un INI como te decía, pues haces algo parecido pero recuperando el nombre del INI buscas si existe la utilizas sino muestras el diálogo de elegir impresora al usuario, en este caso creas el INI guardas los parámetros que vayas a utilizar
[Impresora]
Epson_Facturas
[Orientacion]
La_Que_Sea

Teniendo en cuenta que QuickReport utiliza su impresora QrPrinter no Printer luego le pasas a dicha impresora los parámetros recuperados del INI.

Un Saludo.