![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отчего нет печати [D5, WinXP]
AlexLines © (2005-11-20 12:06:00)Уважаемые знатоки
1) пишу следующий текст
if PrintDialog1.Execute then
RichEdit1.Print(RichEdit1.Text); или lines.text
не печатает
печатает - RichEdit1.Print('Привет всем');
Не могу понять в чем проблема
2) Как проверить установлен ли принтер в системе?
Спасибо
Virgo_Style (2005-11-20 12:45:00) [1]1. Неужели печатает "Привет всем"? Вообще-то должен печатать содержимое Richedit в обоих случаях. Может быть (совершенно не уверен), что в первом случае где-то внутри делается попытка присвоить заголовку задания печати значение Richedit1.Text, которое совершенно для этого не предназначено, что и вызывает ошибку.
2. TPrinter.Printers?
Separator (2005-11-20 12:38:00) [2]The title displayed in the Print Manager (and
on network header pages) is determined by the Title property.
Title - The title used by Windows in the Print Manager and for network
title pages.
Через Title задается имя документа
Для справки:
Удерживая клавишу Ctrl, левой кнопкой мыши нажми на слово Print, попадешь в модуль ComCtrls к процедуре Print:
procedure TCustomRichEdit.Print(const Caption: string);
var
Range: TFormatRange;
LastChar, MaxLen, LogX, LogY, OldMap: Integer;
SaveRect: TRect;
begin
FillChar(Range, SizeOf(TFormatRange), 0);
with Printer, Range do
begin
Title := Caption;
вот, в последней строчке видим, что значение Caption присваевается значению Title, далее тем же способом нажимаем на Title и попадаем в модуль Printers и там, в самом верху находится описание модуля. Если этого мало, то поиском ищем все вхождения Title и вот что находим:
with DocInfo do
begin
cbSize := SizeOf(DocInfo);
lpszDocName := PChar( Title);
end;
Дальше объяснять?