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
Lazarus Release 2.2.2
by
JuhaManninen
[
Today
at 10:04:05 am]
Read JSON names
by
SymbolicFrank
[
Today
at 09:57:39 am]
Frame reception problem i...
by
ccrause
[
Today
at 07:49:34 am]
Raylib4.0 don't work eith...
by
lestroso
[
Today
at 07:32:11 am]
installation warning
by
trev
[
Today
at 03:54:49 am]
Help needed for usage of ...
by
william
[
Today
at 03:33:06 am]
Open Application with sta...
by
speter
[
Today
at 02:40:23 am]
MOVED: Frame reception pr...
by
trev
[
Today
at 01:23:12 am]
MOVED: Regex conversion e...
by
trev
[
Today
at 01:20:23 am]
MOVED: Raylib4.0 don't wo...
by
trev
[
Today
at 01:19:51 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: [CLOSED] Merge cells (Stringgrid) (Read 3712 times)
pcurtis
Hero Member
Posts: 939
[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: 9592
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: 939
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