solution for "Printer selected is not valid", expecially for HP DeskJet printer
Correct Printers.pas unit at line 512 (D 5.01), such as bellow:
procedure TPrinter.SetState(Value: TPrinterState);
...........
if Assigned(CreateHandleFunc) then
with TPrinterDevice(Printers.Objects[PrinterIndex]) do
begin
DC := CreateHandleFunc(PChar(Driver), PChar(Device), PChar(Port),
DevMode);
............
change it to :
DC := CreateHandleFunc(PChar(Driver), PChar(AnsiUpperCase(Device)),
PChar(Port), DevMode);
that's all.
---- Sunboy ----