预览的时候,点打印设置
错误提示:
没有设置默认的打印机
 
delphi 6

解决方案 »

  1.   

    This grabs the selected printer in a ComboBox and makes it the default
    printer.Use this on form create (or whatever)...  ComboBox1.Items := Printer.Printers; {populates ComboBox}
      ComboBox1.ItemIndex := Printer.PrinterIndex; {sets display to current
    printer}then, assuming you have a Button5...procedure TForm1.Button5Click(Sender: TObject);
    var
      Device: array[0..255] of Char;
      Driver: array[0..255] of char;
      Port: array[0..255] of char;
      s : array[0..255] of Char;
      hDeviceMode: THandle;
    begin
      Printer.PrinterIndex := ComboBox1.ItemIndex;
      Printer.GetPrinter (Device, Driver, Port, hDeviceMode);
      StrCopy (s, Device);
      StrCat (s, ',');
      StrCat (s, Driver);
      StrCat (s, ',');
      StrCat (s, Port);
      WriteProfileString ('windows', 'device', s);
      StrCopy (s, 'windows');
      SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@s));
    end;
      

  2.   

    以下是我收集的资料,改变默认打印机
    procedure TForm1.Button1Click(Sender: TObject);
    var
      WinIni : TIniFile;
      WinIniFileName : array[0..MAX_PATH] of char;
      s : array[0..64] of char;begin
      GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName));
      StrCat(WinIniFileName, '\win.ini');
      WinIni := TIniFile.Create(WinIniFileName);
      try 
        WinIni.WriteString('windows',
                           'device',
                           'HP LaserJet Series II,HPPCL,LPT1:');
      finally
        WinIni.Free;
      end;  StrCopy(S, 'windows');
      SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@S));
    end;
      

  3.   

    从控制面板->打印机->添加、设置打印机,如有打印机,设置为
    默认。