![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать. [D7, XP]
Juri © (2006-10-02 23:26:00)и так полазил в хелпе нашёл как пользоватся PrinеDialog
пытаюсь напечатать то что находится в мемо
Memo1.PaintTo(Handle, 10, 10);
прям как в справке почти).
но вместо того чтоб напечатать мне то что в мемо находится мне печатает маленький уголок в левом верхнем углу... вот в этом в принцепе и проблема помогите подскажите где туплю?
Juri (2006-10-06 14:28:00) [1]с этим кодом печать будет производиться только если на компьютере установлен Word может кто знает как напечатать текстовый файл *.rtf не используя Word???
Juri (2006-10-04 18:34:00) [2]если кому интересно использовал этот код
var
MyWord : _ApplicationDisp;
FileName : OleVariant;
begin
if OpenDialog1.Execute then
begin
FileName := OpenDialog1.FileName;
MyWord := CoWordApplication.Create as
_ApplicationDisp;
(MyWord.Documents as DocumentsDisp).Open(FileName,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
(MyWord.ActiveDocument as _DocumentDisp).PrintOut(EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
MyWord.Quit(EmptyParam,EmptyParam,EmptyParam);
end;
end;
Juri (2006-10-04 18:05:00) [3]это всё хорошо НО палучается печатать текст тока в одном формате то есть всегда один и тот же размер жирность и тп....
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
PrintFile: TextFile;
begin
AssignPrn (PrintFile);
Rewrite (PrintFile);
try
for I := 0 to Memo1.Lines.Count-1 do
WriteLn (PrintFile,Memo1.Lines[I])
finally
CloseFile (PrintFile)
end;
end;
с помощью этого вапще тока 1 строку можно напечатать
With Printer do Begin BeginDoc; { Начало печати }
Canvas.Font:=label1.font; { Задали шрифт }
Canvas.TextOut(100,100,'Это тест принтера !!!'); { Печатаем текст }
EndDoc; { Конец печати }
end;
MacroDenS (2006-10-03 14:32:00) [4]подробнее и с кусочками кодов здесь:
http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988622422&n=18
Ketmar (2006-10-03 14:23:00) [5]>[8] Juri 3-Oct-2006, 14:09
>SetMapMode, SetViewportExtEx об этом в хелпе
>ничего не нашёл...
не тот хэлп. MSDN -- наше всё.
Джо (2006-10-03 14:10:00) [6]Проще всего сделать вот так:
uses Printers;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
PrintFile: TextFile;
begin
AssignPrn (PrintFile);
Rewrite (PrintFile);
try
for I := 0 to Memo1.Lines.Count-1 do
WriteLn (PrintFile,Memo1.Lines[I])
finally
CloseFile (PrintFile)
end;
end;
Juri (2006-10-03 14:09:00) [7]SetMapMode, SetViewportExtEx об этом в хелпе ничего не нашёл...
Ketmar (2006-10-03 14:04:00) [8][1] не помогает?
Juri (2006-10-03 13:59:00) [9]ну я уже понял что масштабы... можно поподробнее а лучше кусочком кода или хоть чтонибудь за что уцепится чтоб в хелпе поискать
Ketmar (2006-10-03 13:42:00) [10]подскажу. масштабы, масштабы...
Juri (2006-10-03 13:39:00) [11]что никто не знает?
Juri (2006-10-02 23:34:00) [12]может ты понял неправильно.
этот код мне печатает две линии по 2 см каждая которые сопрекасаются в левом верхнем углу...
Juri (2006-10-02 23:32:00) [13]а попобробнее как этим пользоватся? а то в хелпе чтот мало толку вижу...
guav (2006-10-02 23:30:00) [14]> вот в этом в принцепе и проблема помогите подскажите где
> туплю?
Пиксели на принтере обычно намного меньше мониторных.
Можно их "увеличить", используя функции преобразования координат SetMapMode, SetViewportExtEx и т.п.