Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.03;
Скачать: CL | DM;

Вниз

Как распечатать на принтере содержимое Memo?   Найти похожие ветки 

 
Mishenka   (2003-10-23 18:39) [0]

Как распечатать на принтере содержимое Memo?


 
dataMaster   (2003-10-23 18:55) [1]

Может так:

var
Line: Integer;
PrintText: System.Text;
begin
AssignPrn(PrintText);
Rewrite(PrintText);
Printer.Canvas.Font := Memo1.Font;
for Line := 0 to Memo1.Lines.Count - 1 do
Writeln(PrintText, Memo1.Lines[Line]);
System.Close(PrintText);
end;


 
Sergej   (2003-10-23 19:28) [2]

Memo принтануть непроблема, а вот как Grid можно принтануть???????????


 
dataMaster   (2003-10-23 19:51) [3]

Печать грида (откуда дернул, не помню. может даже с торри)

uses
printers;

//StringGrid Inhalt ausdrucken
procedure PrintStringGrid(Grid: TStringGrid; Title: string;
Orientation: TPrinterOrientation);
var
P, I, J, YPos, XPos, HorzSize, VertSize: Integer;
AnzSeiten, Seite, Zeilen, HeaderSize, FooterSize, ZeilenSize, FontHeight: Integer;
mmx, mmy: Extended;
Footer: string;
begin
//Kopfzeile, Fu?zeile, Zeilenabstand, Schriftgro?e festlegen
HeaderSize := 100;
FooterSize := 200;
ZeilenSize := 36;
FontHeight := 36;
//Printer initializieren
Printer.Orientation := Orientation;
Printer.Title := Title;
Printer.BeginDoc;
//Druck auf mm einstellen
mmx := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH) /
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
mmy := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT) /
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) * 25.4;

VertSize := Trunc(mmy) * 10;
HorzSize := Trunc(mmx) * 10;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);

//Zeilenanzahl festlegen
Zeilen := (VertSize - HeaderSize - FooterSize) div ZeilenSize;
//Seitenanzahl ermitteln
if Grid.RowCount mod Zeilen <> 0 then
AnzSeiten := Grid.RowCount div Zeilen + 1
else
AnzSeiten := Grid.RowCount div Zeilen;

Seite := 1;
//Grid Drucken
for P := 1 to AnzSeiten do
begin
//Kopfzeile
Printer.Canvas.Font.Height := 48;
Printer.Canvas.TextOut((HorzSize div 2 - (Printer.Canvas.TextWidth(Title) div 2)),
- 20,Title);
Printer.Canvas.Pen.Width := 5;
Printer.Canvas.MoveTo(0, - HeaderSize);
Printer.Canvas.LineTo(HorzSize, - HeaderSize);
//Fu?zeile
Printer.Canvas.MoveTo(0, - VertSize + FooterSize);
Printer.Canvas.LineTo(HorzSize, - VertSize + FooterSize);
Printer.Canvas.Font.Height := 36;
Footer := "Seite: " + IntToStr(Seite) + " von " + IntToStr(AnzSeiten);
Printer.Canvas.TextOut((HorzSize div 2 - (Printer.Canvas.TextWidth(Footer) div 2)),
- VertSize + 150,Footer);
//Zeilen drucken
Printer.Canvas.Font.Height := FontHeight;
YPos := HeaderSize + 10;
for I := 1 to Zeilen do
begin
if Grid.RowCount >= I + (Seite - 1) * Zeilen then
begin
XPos := 0;
for J := 0 to Grid.ColCount - 1 do
begin
Printer.Canvas.TextOut(XPos, - YPos,
Grid.Cells[J, I + (Seite - 1) * Zeilen - 1]);
XPos := XPos + Grid.ColWidths[J] * 3;
end;
YPos := YPos + ZeilenSize;
end;
end;
//Seite hinzufugen
Inc(Seite);
if Seite <= AnzSeiten then Printer.NewPage;
end;
Printer.EndDoc;
end;

//Example
procedure TForm1.Button1Click(Sender: TObject);
begin
//Drucken im Querformat
PrintStringGrid(Grid, "StringGrid Print Landscape", poLandscape);
//Drucken im Hochformat
PrintStringGrid(Grid, "StringGrid Print Portrait", poPortrait);
end;


 
Mishenka   (2003-10-23 22:10) [4]

А Image? или просто любую bmp-шку?


 
dataMaster   (2003-10-24 10:06) [5]

http://delphiworld.narod.ru/base/print_timage.html


 
Amoeba   (2003-10-24 10:52) [6]

Сссылка на бесплатный компонент TObjectPrinter? облегчающую распечатку различных объектов есть на http://delphiplus.nagano.ru/news.html
См. новости за 19 ноября.



Страницы: 1 вся ветка

Текущий архив: 2003.11.03;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.008 c
14-8647
Карлсон
2003-10-13 13:41
2003.11.03
спамеры совсем озверели!


3-8313
Melamed
2003-10-10 21:18
2003.11.03
Можно ли обновить набор данных в IBQuery без закрытия таблицы?


4-8730
Сергей Резников
2003-08-28 14:08
2003.11.03
как получить hIcon иконки файла, используя SHGetFileInfo ?


1-8431
kex86
2003-10-20 13:00
2003.11.03
Как из своей программы закрыть консольное приложение, не имеющее


1-8490
IGORYOK
2003-10-23 20:24
2003.11.03
try a:=StrToInt(b) except on EConvertError do ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский