Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
How to print a DrawGrid
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Interesting article about...
by
440bx
[
Today
at 04:16:49 am]
DBLookupListBox shows (ME...
by
heebiejeebies
[
Today
at 04:02:30 am]
SAVE StringGrid to PDF
by
dseligo
[
Today
at 02:40:40 am]
Controlled Folder Access
by
dseligo
[
Today
at 02:34:02 am]
had a question and found ...
by
MarkMLl
[
Today
at 12:13:40 am]
Random errors in TensorFl...
by
TRon
[December 10, 2024, 11:02:08 pm]
Online tutor using remote...
by
silvercoder70
[December 10, 2024, 10:04:11 pm]
[solved] how to control t...
by
mas steindorff
[December 10, 2024, 08:47:04 pm]
Wiki, a dead link in page...
by
d7_2_laz
[December 10, 2024, 08:42:35 pm]
How to save a Graphic fro...
by
jeremiah
[December 10, 2024, 08:11:54 pm]
Crosshair error when chan...
by
Marq01
[December 10, 2024, 08:02:17 pm]
Adding interfaces to any ...
by
Thaddy
[December 10, 2024, 07:32:56 pm]
AVRPascal – free code edi...
by
ackarwow
[December 10, 2024, 04:57:47 pm]
MainMenu: How to use the ...
by
madref
[December 10, 2024, 04:19:32 pm]
I need advice for a new c...
by
wp
[December 10, 2024, 03:18:11 pm]
Datatypes Interoperabilit...
by
silvercoder70
[December 10, 2024, 01:32:48 pm]
Notepad++ plugin with doc...
by
d7_2_laz
[December 10, 2024, 01:11:52 pm]
ZDataset.Locate + loParti...
by
silvercoder70
[December 10, 2024, 10:49:08 am]
SQLite3 Date Problem
by
silvercoder70
[December 10, 2024, 10:08:07 am]
Record "inheritance"/stru...
by
Thaddy
[December 10, 2024, 09:54:38 am]
D2Bridge Framework for La...
by
egsuh
[December 10, 2024, 04:48:02 am]
Application deployment
by
cousinp
[December 10, 2024, 04:28:36 am]
[SOLVED] FPSpreadSheet, ...
by
TRon
[December 10, 2024, 01:25:51 am]
Is it possible to do git ...
by
TRon
[December 10, 2024, 12:41:39 am]
Draw Transparent Fill Rec...
by
LBox
[December 10, 2024, 12:00:51 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: How to print a DrawGrid (Read 1153 times)
bobonwhidbey
Hero Member
Posts: 610
How to print a DrawGrid
«
on:
December 01, 2023, 06:42:08 pm »
The TDrawGrid looks good on my monitor but I haven't figured out how to print it on the printer canvas. I think my biggest problem is getting aRect, although there's a good chance I'm going about this all wrong.
Code: Pascal
[Select]
[+]
[-]
procedure
TMyForm
.
PrintClick
(
Sender
:
TObject
)
;
var
c
,
r
:
integer
;
aRect
:
TRect
;
begin
if
PrinterSetup
.
Execute
then
begin
Printer
.
BeginDoc
;
for
c
:
=
0
to
Grid
.
ColCount
-
1
do
for
r
:
=
0
to
Grid
.
RowCount
-
1
do
begin
aRect
:
=
Grid
.
CellRect
(
c
,
r
)
;
DrawCelltoCanvas
(
Printer
.
Canvas
,
c
,
r
,
aRect
,
[
]
)
;
end
;
// for c & r
Printer
.
EndDoc
;
end
;
// printer executed
end
;
Logged
Lazarus 3.6 FPC 3.2.2 x86_64-win64-win32/win64
paweld
Hero Member
Posts: 1268
Re: How to print a DrawGrid
«
Reply #1 on:
December 01, 2023, 07:08:06 pm »
GridPrinter:
https://wiki.lazarus.freepascal.org/GridPrinter
Logged
Best regards / Pozdrawiam
paweld
bobonwhidbey
Hero Member
Posts: 610
Re: How to print a DrawGrid
«
Reply #2 on:
December 04, 2023, 04:34:00 pm »
I haven't been able to figure out how to use the GridPrinter with a TDrawGrid. The (quite good) documentation doesn't mention use with a TDrawGrid. What am I missing?
Logged
Lazarus 3.6 FPC 3.2.2 x86_64-win64-win32/win64
wp
Hero Member
Posts: 12466
Re: How to print a DrawGrid
«
Reply #3 on:
December 04, 2023, 04:42:19 pm »
I cannot remember every detail of that component, but you probably must provide a handler for the OnGetCellText event in which you tell the printer the text to be printed in a specific cell.
Or is it non-text printing you are after? In this case provide a small demo project showing the grid to be printed.
Logged
bobonwhidbey
Hero Member
Posts: 610
Re: How to print a DrawGrid
«
Reply #4 on:
December 04, 2023, 05:37:26 pm »
I am printing text but I also need to control the font name and size in each cell.
In my DrawGrid onDrawCell I use my own FillRect and TextDraw, etc. I discovered that the GridPrinter needs the OnPrintCell method. Thanks wp for getting me to look further under the hood.
Logged
Lazarus 3.6 FPC 3.2.2 x86_64-win64-win32/win64
bobonwhidbey
Hero Member
Posts: 610
Re: How to print a DrawGrid
«
Reply #5 on:
December 04, 2023, 10:31:10 pm »
One last point. How do I trigger a new page. Not needed when viewing the Grid but needed when printing. I can't use Printer.NewPage.
Logged
Lazarus 3.6 FPC 3.2.2 x86_64-win64-win32/win64
wp
Hero Member
Posts: 12466
Re: How to print a DrawGrid
«
Reply #6 on:
December 04, 2023, 11:29:20 pm »
Page breaks are determined by the component, when a row or column does not fit on the current page any more. IIRC, there is no way to manually trigger a page break. This does not mean that it's not possible, but it certainly will require some work.
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
How to print a DrawGrid
TinyPortal
© 2005-2018