Форум: "Основная";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизСписок установленных принтеров Найти похожие ветки
← →
dolmat (2005-08-15 13:31) [0]Как получить список установленных принтеров
или хотя бы имя выбранного принтера после выбора в
Printsetupdialog
← →
Плохиш © (2005-08-15 13:39) [1]function Printer: TPrinter; + F1
← →
Kazakh (2005-08-15 14:34) [2]Список всех установленных принтеров и установить по умолчанию.
unit MainFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMainForm = class(TForm)
cbPrinters: TComboBox;
lblPrinter: TLabel;
procedure FormCreate(Sender: TObject);
procedure cbPrintersChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses IniFiles, Printers;
{$R *.DFM}
procedure TMainForm.FormCreate(Sender: TObject);
begin
{ Copy the printer names to the combobox and set the combobox to
show the currently selected default printer }
cbPrinters.Items.Assign(Printer.Printers);
cbPrinters.Text := Printer.Printers[Printer.PrinterIndex];
// Update the label to reflect the default printer
lblPrinter.Caption := Printer.Printers[Printer.PrinterIndex];
end;
procedure TMainForm.cbPrintersChange(Sender: TObject);
var
IniFile: TIniFile;
TempStr1, TempStr2: string;
S: array[0..64] of char;
begin
with Printer do
begin
// Set the new printer based on the ComboBox"s selected printer
PrinterIndex := cbPrinters.ItemIndex;
// Store the printer name into a temporary string
TempStr1 := Printers[PrinterIndex];
// Delete the unnecessary portion of the printer name
System.Delete(TempStr1, Pos(" on ", TempStr1), Length(TempStr1));
// Create a TIniFile class
IniFile := TIniFile.Create("WIN.INI");
try
// Retrieve the device name of the selected printer
TempStr2 := IniFile.ReadString("Devices", TempStr1, "");
// Change the default printer to that chosen by the user
IniFile.WriteString("windows", "device", TempStr1 + "," + TempStr2);
// Tell all windows that the default printer changed.
StrCopy(S, "windows");
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@S));
finally
IniFile.Free;
end;
end;
// Update the label to reflect the new printer selection
lblPrinter.Caption := Printer.Printers[Printer.PrinterIndex];
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c