![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать в KOL
Kirill © (2002-09-10 11:01:00)Подскажите как в чистом KOL печатать простой текст.
Пытаюсь подключить модуль Printers, а Delphi ругается на разность версий при компиляции модуля Variants.
Есть ли другие альтернативы этому коду:
var TextFile: TextFile;
st : PStrLst;
i : word;
begin
AssignPrn(textfile);
Rewrite(TextFile);
st:=NewStrLst;
st.text:=editbox.text;
for i:=0 to st.count-1 do Writeln(textfile,st.items[i]);
CloseFile(TextFile);
Free_AND_Nil(st);
end;
Delphi 6, Kol 1.43, MCK - NO
Boguslaw Brandys (2002-09-24 20:20:00) [1]http://xcl.cjb.netin section "Controls" download TKOLPrintDialogs 1.2. Don"t worry this is really 1.4 version though description is old :-(
Pozdravljaju
Kirill (2002-09-24 18:55:00) [2]Куда?
Нигде не нашел.
Vladimir Kladov (2002-09-20 11:12:00) [3]Сегодня будет выложена новая версия TKOLPrint... от Брандыса. Что-то он там еще надобавлял.
Kirill (2002-09-19 19:06:00) [4]Не пробовал, но такая оперативность мне понравилась.
Gandalf (2002-09-19 18:28:00) [5]>Делаю Pr.Title:="test";, но ничего не меняется.
>Title, я так понял, заголовок, который печатается на каждой >странице в верхнем колинтуле или нет?
Правильно поняли, так и есть. Дело тут в другом присвоение надо делать до BeginDoc; i.e:
Pr.Title:="Gandalf - Super %)";
Pr.BeginDoc;
-= Во избежание грядущих вопросов=-
Вопрос: Ааааааааааа, не печатает. Дает пустую страницу.
with Printer^ do
begin
Title:="My Doc";
BeginDoc;
Canvas.MoveTo(10,10);
Canvas.LineTo(2000,2000);
Canvas.TextOut(400,400,"Super-Puper------------------");
EndDoc;
end;
Ответ: Дефект конверции в KOL. Происходит потому что HDC Принтера не подвязалась с Canvas принтера, есть два выхода:
1) Подождать новой версии - пока не подвежу или обойду.
2) Перенести переменную HDC принтера из раздела Private в Public (если не понятно пишите на мыло или в форум) и далее работать так:
var
C:PCanvas;
begin
with Printer^ do
begin
Title:="My Doc";
BeginDoc;
C:=NewCanvas(DC);
C.MoveTo(10,10);
C.LineTo(2000,2000);
C.TextOut(400,400,"Super-Puper------------------");
EndDoc;
end;
C.Free;
end;
-= Немного теории =-
На стандартном Printers Title после BeginDoc тоже не работает. Поскольку строка Title это:
property Title:String read Ftitle write FTitle;
а вот при BeginDoc само значение и записывается. Это недостаток (даже фича), но не ошибка. Но вообще-то неудобно (я сам заметил) - исправлю (,а может и нет - как народ захочет).
Kirill (2002-09-19 11:47:00) [6]
>переноси с поправкой на KOL или есть конкретные вопросы,
>что-то не получается
ДелаюPr.Title:="test";, но ничего не меняется.
Title, я так понял, заголовок, который печатается на каждой странице в верхнем колинтуле или нет?
Gandalf (2002-09-18 19:20:00) [7]>Ага, и Gandalf написал компонент.
>Темерь бы инструкцию по его работе. :)
По моему компоненту (KOLMHPrinter)? Так ведь он ничем не отличается от стандартного Printers под дельфи - код один в один переноси с поправкой на KOL или есть конкретные вопросы, что-то не получается?
Kirill (2002-09-18 18:53:00) [8]Ага, и Gandalf написал компонент.
Темерь бы инструкцию по его работе. :)
Vladimir Kladov (2002-09-14 11:16:00) [9]По-моему, что-то все-таки есть. Посмотрите на KOLPrintDialogs от
Брандиса. Там вроде и TKOLPrinter есть, и насколько мне известно, он как раз для печати.
Kirill (2002-09-12 11:28:00) [10]С удовольствием буду тестером.
Gandalf (2002-09-11 22:22:00) [11]Пока нет (насколько я знаю), но уже почти полность перевел модуль Printers на KOL получилость ~+5Кб - чоень не плохо, скоро будут полевые испытания...
Kirill (2002-09-11 10:52:00) [12]А альтернативы печати нет?
Gandalf (2002-09-11 10:38:00) [13]>Пытаюсь подключить модуль Printers, а Delphi ругается на >разность версий при компиляции модуля Variants.
Замену системных библиотек пробовал отключить?
ЗЫ: В любом случае (uses printers) размер=размер+250Кб