samone
asked on
Save printer settings
How do I save settings of:
selected printer from printsetupdialogbox in the register.
I have tried to use printer.printerindex but I always get printer index #1 or default printer index #-1
and I also want my program to use my saved printersetting when it starts up,
please recall with some code
selected printer from printsetupdialogbox in the register.
I have tried to use printer.printerindex but I always get printer index #1 or default printer index #-1
and I also want my program to use my saved printersetting when it starts up,
please recall with some code
#1 must be the default printer. You can set a different default printer in the Printers folder, is this what you want to do? This issue has propably something to do with the SetPrinter API, but I never used it, so I can advice to look in the Help for this key or the MSDN.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
This is how to use the windows registry:
Include REGISTRY in the Uses clause
then i.e: THIS will SAVE to the registry
procedure TForm1.BitBtn1Click(Sender : TObject);
Var r: TRegistry;
a: byte;
b: byte;
begin
a:= 7;
b:= 12;
r := TRegistry.Create;
with r do
try
CreateKey('NameOfMyProgram ');
OpenKey('NameOfMyProgram', False);
WriteBinaryData('Option1', a,1);
WriteBinaryData('Option2', b,1);
CloseKey;
finally
free;
end;
ans THIS will READ from the registry
procedure TForm1.BitBtn2Click(Sender : TObject);
Var r: TRegistry;
a: byte;
b: byte;
begin
r := TRegistry.Create;
with r do
try
CreateKey('NameOfMyProgram ');
OpenKey('NameOfMyProgram', False);
ReadBinaryData('Option1',a ,1);
ReadBinaryData('Option2',b ,1);
CloseKey;
finally
free;
end;
This way you can WRITE and READ in the registry.
bryan
Include REGISTRY in the Uses clause
then i.e: THIS will SAVE to the registry
procedure TForm1.BitBtn1Click(Sender
Var r: TRegistry;
a: byte;
b: byte;
begin
a:= 7;
b:= 12;
r := TRegistry.Create;
with r do
try
CreateKey('NameOfMyProgram
OpenKey('NameOfMyProgram',
WriteBinaryData('Option1',
WriteBinaryData('Option2',
CloseKey;
finally
free;
end;
ans THIS will READ from the registry
procedure TForm1.BitBtn2Click(Sender
Var r: TRegistry;
a: byte;
b: byte;
begin
r := TRegistry.Create;
with r do
try
CreateKey('NameOfMyProgram
OpenKey('NameOfMyProgram',
ReadBinaryData('Option1',a
ReadBinaryData('Option2',b
CloseKey;
finally
free;
end;
This way you can WRITE and READ in the registry.
bryan
to zifnab :
here is a code witch doesn't work with the printer.printerIndex could you tell me why ???
var
i,nb_pr:integer;
chaine:string;
bool:boolean;
imprimante:tprinter;
begin
imprimante:=tprinter.creat e;
nb_pr:=imprimante.Printers .Count;
i:=1;
bool:=false;
while (i<=nb_pr) and (not bool) do
begin
chaine:=trim(imprimante.Pr inters[i-1 ]);
if copy(chaine,7,8)='DFX-5000 ' then // here, the
// printer is founded.
begin
bool:=true;
end;
i:=i+1;
end;
i:=i-1;
imprimante.PrinterIndex:=i -1;
r_facture.print;
r_facture.preview; // It's a Qreport
imprimante.free;
end;
here is a code witch doesn't work with the printer.printerIndex could you tell me why ???
var
i,nb_pr:integer;
chaine:string;
bool:boolean;
imprimante:tprinter;
begin
imprimante:=tprinter.creat
nb_pr:=imprimante.Printers
i:=1;
bool:=false;
while (i<=nb_pr) and (not bool) do
begin
chaine:=trim(imprimante.Pr
if copy(chaine,7,8)='DFX-5000
// printer is founded.
begin
bool:=true;
end;
i:=i+1;
end;
i:=i-1;
imprimante.PrinterIndex:=i
r_facture.print;
r_facture.preview; // It's a Qreport
imprimante.free;
end;