Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 10-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
La idea general es poder definir en un archivo de texto o ini, diferentes impresoras y asignarlas en runtime segun lo que se desee imprimir.
Hola Ibdi.

No capto bién la idea de lo que buscas hacer. Para que el usuario asigne una de las impresoras disponibles, basta con pasarlas a un ListBox, ComboBox, etc, para que se las elija desde allí.

Pero en ese caso no tendría mucho sentido guardarlas en un archivo INI. Generalmente en este tipo de archivos se guardan configuraciones realizadas por el usuario y que se quieren conservar un cierto tiempo para que no tenga que volver a realizar la taréa cada vez que se inicie el programa.

Por ejemplo, si toda la semana van a imprimir en formulario continuo, sería cómodo que guardara como predeterminada la impresora matricial hasta que se realize una nueva elección por que la nueva taréa requiere de una impresora Laser. Es decir que mantenga la selección hasta que el usuario la vuelva a cambiar.

Si no entendí mal y la idea es esa, podrias hacer:
Código Delphi [-]
...
implementation

uses Printers, IniFiles;

var
  Prn: TPrinter;

(* Cargar impresoras en combo, seleccionar última usada *)
procedure TForm1.FormCreate(Sender: TObject);
var
  s: string;
begin
  with TIniFile.Create('YourApp.ini') do
  try
    Prn:= TPrinter.Create;
    ComboBox1.Items:= Prn.Printers;
    ComboBox1.ItemIndex:= 0;
    s:= ReadString('Impresora', 'Actual', ComboBox1.Text);
    ComboBox1.ItemIndex:= ComboBox1.Items.IndexOf(s);
    Prn.PrinterIndex:= Prn.Printers.IndexOf(s)
  finally
    Free
  end
end;

(* Seleccionó otra impresora *)
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Prn.PrinterIndex:= Prn.Printers.IndexOf(ComboBox1.Text)
end;

//...

(* Guardar ultima impresora seleccionada *)
procedure TForm1.FormDestroy(Sender: TObject);
begin
  with TIniFile.Create('YourApp.ini') do
  try
    WriteString('Impresora', 'Actual', Prn.Printers[Prn.PrinterIndex])
  finally
    Free
  end;
  if Assigned(Prn) then  // asegurarnos...
    Prn.Free;
end;
end.
Con el mismo resultado podés utilizar el registro de windows para almacenar la selección.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como averiguar el charset que tiene definida una Base de Datos Firebird apicito Firebird e Interbase 8 15-07-2010 14:01:26
clase que contiene otra clase definida de forma posterior astwin OOP 5 20-02-2009 11:26:55
¿Packet Sniffer? Cómo saber quien tiene definida un IP Virtual... Neftali [Germán.Estévez] Redes 22 14-05-2007 19:30:21
Abrir carpeta de una ruta definida Aprendiendo Varios 3 01-03-2007 17:41:50


La franja horaria es GMT +2. Ahora son las 01:59:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi