Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Definir impresora (https://www.clubdelphi.com/foros/showthread.php?t=38799)

Carliviris 28-12-2006 23:23:44

Definir impresora
 
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:

Código Delphi [-]
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

seleccion de impresora
 
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:

Código Delphi [-]
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,


La franja horaria es GMT +2. Ahora son las 08:28:31.

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