![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Доступные принтеры [D6]
konrads © (2006-08-17 10:13:00)Как узнать, какие принтеры доступны, и как распечатать на них через EXCEL, сначала на один принер, потом на другой.
....WorkBooks[1].WorkSheets[1].PrintOut - печатает на принтер который в системе по умолчанию
Сергей М. (2006-08-31 12:05:00) [1]
> выдаёт ошибку: 'Нельзя установить свойство ActivePrinter
> класса Application'
Фиг знает, почему так.
Свойство это read/write - это 100%-но, вот выдержка из справки:
ActivePrinter Property
Returns or setsthe name of the active printer. Read/ writeString.
Причем установка св-ва дает отлуп только при обращении к Ёхелю как к олей-объекту, при обращении же как к сом-объекту все в порядке.
Бросай на форму компонент TExcelApplication и проверяй:
procedure TForm2.Button1Click(Sender: TObject);
begin
ExcelApplication1.Connect;
try
ShowMessage(ExcelApplication1.ActivePrinter[0]);
ExcelApplication1.ActivePrinter[0] := xl.Application.ActivePrinter[0];
finally
ExcelApplication1.Disconnect;
end;
end;
У меня это работает.
> XL.ExcelApplication.ActivePrinter
> Говорит что метод отсутствует в объекте автоматизации
Метода XL.ExcelApplication действительно нет, есть свойство XL.Application, обращение к нему осуществляется по умолчанию при обращении к объекту XL, так что выделенное жирным в строке XL. Application.ActivePrinter не обязательно.
konrads (2006-08-31 11:45:00) [2]
var XL: variant;
.......
XL := CreateOleObject('Excel.Application');
XL.Visible := true;
XL.WorkBooks.Add;
XL.WorkBooks[1].WorkSheets[1].Cells[1,1] := XL.Application.ActivePrinter;
XL.Application.ActivePrinter := 'Canon LASER SHOT LBP-1120';
.......
'Canon LASER SHOT LBP-1120' один из реально установленных принтеров в системе. Программа выдаёт ошибку: 'Нельзя установить свойство ActivePrinter класса Application'
.......
XL.ActivePrinter := 'Canon LASER SHOT LBP-1120';
.......
даёт ту-же ошибку
.......
XL.ExcelApplication.ActivePrinter
.......
Говорит что метод отсутствует в объекте автоматизации
Где ошибка ?
Сергей М. (2006-08-31 11:00:00) [3]
> Это свойство ReadOnly
Да не ужели ?
А вот Майкрософт иного мнения)
konrads (2006-08-31 10:52:00) [4]Это свойство ReadOnly :(
Сергей М. (2006-08-24 12:24:00) [5]ExcelApplication.ActivePrinter := 'Имя принтера'
Anatoly Podgoretsky (2006-08-24 12:00:00) [6]Смотри документную модель Экселя, это на Микрософт
konrads (2006-08-24 11:56:00) [7]из программы как это сделать?
Anatoly Podgoretsky (2006-08-24 10:10:00) [8]konrads (17.08.06 10:55) [2]
В меню Файл/Печать
konrads (2006-08-24 10:08:00) [9]ничего не получается :)
konrads (2006-08-18 12:45:00) [10]Для программы он меняет принтер, для EXCEL - нет
Пусик (2006-08-17 11:59:00) [11]
> konrads (17.08.06 10:55) [2]
> Спасибо, с доступными теперь понятно, а как Excel заставить
> печатать сначала на один, потом на второй. Где у него найти
> PrinterSetup?
см. Printer.PrinterIndex ;)
konrads (2006-08-17 10:55:00) [12]Спасибо, с доступными теперь понятно, а как Excel заставить печатать сначала на один, потом на второй. Где у него найти PrinterSetup?
Пусик (2006-08-17 10:40:00) [13]См. Printer.Printers