Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
LCL
»
[CLOSED] Merge cells (Stringgrid)
Free Pascal
Website
Downloads
Wiki
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Bugtracker
CCR Bugs
IRC channel
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
How can i run application...
by
Moombas
[
Today
at 08:14:42 am]
What is the best free pot...
by
Alienizering
[
Today
at 05:26:11 am]
Remote debugging on Raspb...
by
DimTim
[
Today
at 05:04:27 am]
Translation does not work...
by
Alienizering
[
Today
at 04:38:22 am]
about sqldb postgresql LO...
by
gucao
[
Today
at 02:56:58 am]
lazarus "i18n" PO Output ...
by
dbannon
[
Today
at 01:59:50 am]
MOVED: lazarus "i18n" PO ...
by
trev
[
Today
at 01:21:49 am]
MOVED: Translation does n...
by
trev
[
Today
at 01:18:57 am]
LAMW - "This app has a bu...
by
Agmcz
[
Today
at 01:09:25 am]
DPI/PPI on Windows
by
Alienizering
[
Today
at 12:59:34 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: [CLOSED] Merge cells (Stringgrid) (Read 3703 times)
pcurtis
Hero Member
Posts: 935
[CLOSED] Merge cells (Stringgrid)
«
on:
December 04, 2021, 09:09:11 pm »
I found this code to merge cells. It half works, but the cells under the spanned cells are still selecable and the grid lines are visible.
How can I fix this?
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
StringGrid1DrawCell
(
Sender
:
TObject
;
aCol
,
aRow
:
Integer
;
aRect
:
TRect
;
aState
:
TGridDrawState
)
;
var
i
,
x
,
y
:
Integer
;
begin
if
gdFixed
in
aState
then
Exit
;
if
not
(
ARow
in
[
1
,
3
]
)
then
Exit
;
{Draw row 1 with text from cell 1,1 spanning all cells in the row}
with
Sender as TStringGrid
do
begin
{Extend rect to include grid line on right, if not last cell in row}
if
aCol <
Pred
(
ColCount
)
then
aRect
.
Right
:
=
aRect
.
Right
+
GridlineWidth
;
{Figure out where the text of the first cell would start relative to the
current cells rect}
y
:
=
aRect
.
Top
+
2
;
x
:
=
aRect
.
Left
+
2
;
for
i
:
=
1
to
aCol
-
1
do
x
:
=
x
-
ColWidths
[
i
]
-
GridlineWidth
;
{Paint cell pale yellow}
Canvas
.
Brush
.
Color
:
=
$7FFFFF
;
Canvas
.
Brush
.
Style
:
=
bsSolid
;
Canvas
.
FillRect
(
aRect
)
;
{Paint text of cell 1,1 clipped to current cell}
Canvas
.
TextRect
(
aRect
,
x
,
y
,
'A rather long line which will span cells'
)
;
end
;
end
;
«
Last Edit: December 05, 2021, 09:40:29 am by pcurtis
»
Logged
Windows 10 20H2
Laz 2.2.0
FPC 3.2.2
wp
Hero Member
Posts: 9574
Re: Merge cells (Stringgrid)
«
Reply #1 on:
December 04, 2021, 09:50:27 pm »
See the demo project in folder examples/gridexamples/merged_cells of your Lazarus installation.
Logged
Mainly Lazarus trunk / fpc 3.2.0 / all 32-bit on Win-10, but many more...
pcurtis
Hero Member
Posts: 935
Re: Merge cells (Stringgrid)
«
Reply #2 on:
December 04, 2021, 11:38:38 pm »
Thanks for the pointer.
Turned mcgrid into a component and it works great.
«
Last Edit: December 05, 2021, 08:16:28 pm by pcurtis
»
Logged
Windows 10 20H2
Laz 2.2.0
FPC 3.2.2
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
LCL
»
[CLOSED] Merge cells (Stringgrid)
TinyPortal
© 2005-2018