[Lazarus-es] impresion en red
Claudio Romero
clauslack en gmail.com
Mie Ago 28 21:27:43 CEST 2013
Paola, la opción mas simple es un archivo INI, asi lo tengo yo en la empresa
Ejemplo
config.ini
[Opciones]
Impresora FC=Virtual_PDF_Printer
Impresora Bonos=hp4plus
Impresora Reportes=hp_LaserJet_4200
Lazarus
//Para buscar el número de impresora por el nombre de la misma.
function 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;
//
//Leo las impresoras de config.ini cuando arranco la aplicación y
pongo los nros en variables globales
function LeerArchivoParametros:boolean;
var ini:Tinifile;archivo,temp:string;
begin
archivo:=ExtractFilePath(Application.EXEName)+'config.ini';
if not FileExists(archivo) then begin
showmessage('ERROR:no se encuentra el archivo config.ini');
result:=false;
exit;
end;
ini := TIniFile.Create(archivo);
with ini do begin
GNroImpresoFacturas:=BuscarImpresora(ReadString('Opciones',
'Impresora FC',''));
GNroImpresoraBonos:=BuscarImpresora(ReadString('Opciones',
'Impresora Bonos',''));
GNroImpresoraReportes:=BuscarImpresora(ReadString('Opciones',
'Impresora Reportes',''));
if (GNroImpresoFacturas=-1) then GNroImpresoFacturas:=0;
if (GNroImpresoraBonos=-1) then GNroImpresoraBonos:=0;
if (GNroImpresoraReportes=-1) then GNroImpresoraReportes:=0;
Free;
end;
result:=true;
end;
//Para imprimir facturas uso el nro de impresora de GNroImpresoFacturas
procedure TForm1.Button1Click(Sender: TObject);
begin
Printer.PrinterIndex:=GNroImpresoFacturas;
//imprime con el objeto printer
end;
En tu caso podrias tener en el INI nombres diferentes de impresoras en
cada maquina, pero tu aplicación siempre leeria el mismo parametro.
Saludos
More information about the Lazarus-es
mailing list