Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизКак распечатать на принтере содержимое 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c