I wrote a small program to test this.
It does not seem to work.
The XDPI/YDPI after SetPrinterSolution is called is the same as before. No change.
I tried it with different printers on different O/S 'es (XP, Vista, Win 7). No luck, though
the program reports that the change was made.
thanks again
code below.
procedure TForm1.Button2Click (Sender : TObject ) ;
var res : integer;
result : boolean;
begin
// get resolution before change
labelededit1.Text:=inttostr(printer.XDPI);
labelededit2.Text:=inttostr(printer.YDPI);
label1.Caption:= '';
// combobox is populated with list of printers
// in the form's onshow event.
// (combobox1.Items := printer.Printers;)
if combobox1.Text = '' then
begin
showmessage('Pick - a - printer !!');
end
else printer.SetPrinter(combobox1.Text);
if edit1.Text = '' then showmessage('Enter resolution first !') else res := strtoint(edit1.Text);
result := SetPrinterSolution(combobox1.text,res);
if result = true then label1.Caption := 'Done'
else label1.Caption := 'Not done';
// get resolution after change
labelededit3.Text:=inttostr(printer.XDPI);
labelededit4.Text:=inttostr(printer.YDPI);
end;