La Web del Programador: Comunidad de Programadores
 
    Pregunta:  57385 - SIMULAR EL REFRESH DE QREPORT DE DELHI6 EN DELPHI4
Autor:  fede
Buen dia.

Necesito Simular el "refresh" de qreport de delhi6 en delphi4.
Les comento en detalle mi problema, estamos queriendo migrar la impresion de comprobantes que realizamos en crystal a qreport, el problema es que qreport utiliza la lista de impresoras existentes en la pc para saber dnd imprimir, pero en mi caso la aplicacion esta en un win 2003 server (cuando los usuario entran y salen se van moviendo los index de las impresoras),y necesito hacer un refresh constante de la lista de impresoras,en mis programas q estan sobre delphi6 ya lo tengo solucionado, pero para mi sorpresa en delphi 4 no contempla el dichoso refresh.. una ayudita..????

delphi 6
================
procedure TPrinter.Refresh;
begin
FreeFonts;
FreePrinters;
end;
================

  Respuesta:  fede
Una posible solucion que encontre para simular la funcion del refresh de
delphi 6 pero en delphi 4 es esta... y para mis propositos "sirve". Si alguien tiene alguna solucion mas elegante seria interezante.

function EligeImpresora( const Nombre_impresora : string) : integer;
var
Timpresora : Tprinter;
i: integer;
begin
result :=0;
Timpresora := TPrinter.Create;
Timpresora.Printers.SaveToFile('Impresoras_en_lista.txt');
for i:=0 to Timpresora.Printers.Count-1 do
begin
if UpperCase(trim(Timpresora.Printers.Strings[i])) =
UpperCase(trim(Nombre_impresora)) then
result:= i;
end;
Timpresora.Destroy;
Timpresora := nil;
end;

El eliminar la variable TImpresora (de tipo Tprinter) me permite refrescar
la lista de impresoras.

Muchas Gracias por la atencion.
fede.