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
RP2040 with Picoprobe and...
by
MarkMLl
[
Today
at 01:13:45 pm]
Ant.Properties can't be f...
by
Pkandet
[
Today
at 12:21:55 pm]
TBCTrackBarUpDown OnMouse...
by
petevick
[
Today
at 12:16:59 pm]
Read JSON names
by
SymbolicFrank
[
Today
at 11:45:54 am]
How to show TForm from Qt...
by
Dio Affriza
[
Today
at 11:41:40 am]
backconnect sock proxy ? ...
by
Thaddy
[
Today
at 11:01:17 am]
How to determine the colo...
by
MarkMLl
[
Today
at 10:58:54 am]
After upgrade to Laz 2.2....
by
Thaddy
[
Today
at 10:47:02 am]
MOVED: Ant.Properties can...
by
trev
[
Today
at 09:52:02 am]
Incorrect code in /fonten...
by
PascalDragon
[
Today
at 09:23:38 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: [CLOSED] Merge cells (Stringgrid) (Read 3715 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: 9603
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