[Lazarus-es] Impresion (matricial) en red con win7

Claudio Romero clauslack en gmail.com
Mie Jun 20 01:18:16 CEST 2012


Para buscar el número de impresora por el nombre de la misma.
No he probado mucho esto, pero parece funcionar.

Agregar    Button1, Edit1 y     Memo1.
En Edit1 pones el nombre de la impresora a buscar

/---
unit busca_impre_;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls, printers;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
	function BuscarImpresora(nombre:string):integer;
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }
//Para buscar el número de impresora por el nombre de la misma.
function TForm1.BuscarImpresora(nombre:string):integer;
var i:integer;
begin
	Result:=-1;
	for i:=0 to Printer.Printers.Count-1 do
    	if UpperCase(nombre)=UpperCase(Printer.Printers.Strings[i]) then begin
			Result:=i; exit;
		end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
	memo1.Lines.Clear;
	for i:=0 to Printer.Printers.Count-1 do
		memo1.Lines.add(IntToStr(i)+' - '+ Printer.Printers.Strings[i]);
	Printer.PrinterIndex:=BuscarImpresora(Edit1.Text);
	ShowMessage(IntToStr(Printer.PrinterIndex));
end;

initialization
  {$I busca_impre_.lrs}

end.
// saludos




More information about the Lazarus-es mailing list