PDA

Ver la Versión Completa : Definir impresora


Carliviris
28-12-2006, 23:23:44
Cuando voy a imprimir algo, como puedo elegir por cual impresora imprimir desde delphi??

Onti
28-12-2006, 23:39:35
probaste con PrintDialog?

Carliviris
29-12-2006, 00:35:02
sip, por printdialog si, pero lo quiero por codigo para que el usuario no pueda elegir la impresora y sea un proceso mas rapido

roman
29-12-2006, 05:44:11
Un método sencillo podría ser este:


uses Printers;

procedure SeleccionarImpresora(Nombre: String);
var
Index: Integer;

begin
// Buscamos la impresora deseada en la lista de impresoras
Index := Printer.Printers.IndexOf(Nombre);

// Si la encontramos, dejamos que PrinterIndex haga el trabajo sucio
if Index <> -1 then
Printer.PrinterIndex := Index;
end;


// Saludos

Carliviris
29-12-2006, 15:03:30
funciona perfectamente, gracias

ldmar3
11-01-2008, 00:41:18
al buscar por internet una respuesta hacerca de crear una opcion para poder seleccionar una impresora encontre esta respuesta que me agrado que tu pusieras pero tengo un pequeño problema que en el codigo que enviaste en donde dice nombre no se que poner alli me podrias guiar un poco ya que tal vez me cerre de mente en estos momentos gracias espero tu respues

marks

Delphius
11-01-2008, 03:12:17
Hola ldmar3,
No tengo Delphi a mano...
Espero poder expresarme bien.

Printer mantiene un listado de todas la impresoras instaladas en el equipo (para ello la propiedad Printers). El procedimiento recibe como parámetro el Nombre de la impresora a seleccionar. Y lo que realiza es buscarla dentro de dicha lista... Si la encuentra (Index <> -1) la asocia como predeterminada mediante la propiedad PrinterIndex.

Te recomendaría que leas la ayuda sobre la clase TPrinter.

EDITO:
Está hecha al vuelo... asi que no te garantizo si andará... creería que esto puede darte una idea de como funciona:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Printers;

type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SeleccionarImpresora(Nombre: string);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
for i := 0 to Printer.Printers.Count - 1 do
ListBox1.Items.Add(Printer.Printers[i]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SeleccionarImpresora(Edit1.Text);
end;

procedure TForm1.SeleccionarImpresora(Nombre: string);
var Index: integer;
begin
Index := Printer.Printers.IndexOf(Nombre);
if Index <> -1
then begin
Printer.PrinterIndex := Index;
ListBox1.Selected[Index] := True;
end;
end;

end.


Saludos,