Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
Databases
»
(solved) Horizontal scroll event into dbgrid
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
MVP made easier.
by
cdbc
[April 23, 2025, 11:51:34 pm]
FPC 3.2.2 + Lazarus 3.4 C...
by
paule32
[April 23, 2025, 11:18:59 pm]
FPC 3.2.2 using Result wi...
by
paule32
[April 23, 2025, 11:16:52 pm]
FPC 3.2.2 - maximum Lengt...
by
paule32
[April 23, 2025, 11:09:57 pm]
debugger not showing vari...
by
rohran
[April 23, 2025, 11:05:01 pm]
[solved] macro for code ?
by
Zoran
[April 23, 2025, 11:04:56 pm]
Knob Finger Spinner Graph...
by
circular
[April 23, 2025, 10:15:44 pm]
Snaking ZigZag Curve: PRO...
by
Handoko
[April 23, 2025, 10:12:04 pm]
Library: Embed DLL in EXE
by
Tomxe
[April 23, 2025, 09:57:37 pm]
Writing a TMemo widget fr...
by
paule32
[April 23, 2025, 08:38:32 pm]
ChatGPT and algorithms
by
TBMan
[April 23, 2025, 06:18:46 pm]
Deleting exe-file not wor...
by
d2010
[April 23, 2025, 06:14:27 pm]
Named range
by
Thaddy
[April 23, 2025, 05:22:17 pm]
Math.RoundTo incorrect so...
by
BeniBela
[April 23, 2025, 04:07:40 pm]
2d "platform" game sugges...
by
TBMan
[April 23, 2025, 03:47:29 pm]
Rain Simulator
by
Boleeman
[April 23, 2025, 02:57:30 pm]
Turbo Pascal's default fo...
by
Thaddy
[April 23, 2025, 02:34:28 pm]
Amigo programming languag...
by
paxscript
[April 23, 2025, 02:07:13 pm]
More AI hype?
by
Joanna from IRC
[April 23, 2025, 02:01:16 pm]
I didn't expect this
by
simone
[April 23, 2025, 01:40:01 pm]
Reading axis range after ...
by
wp
[April 23, 2025, 11:41:42 am]
Testing with SQLite3DataS...
by
CharlyTango
[April 23, 2025, 10:55:38 am]
Detecting symbol correspo...
by
Tommi
[April 23, 2025, 10:13:27 am]
[SOLVED] WebP images and ...
by
circular
[April 23, 2025, 09:29:34 am]
[SOLVED] How to "Jump To"...
by
Markus
[April 23, 2025, 09:24:57 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: (solved) Horizontal scroll event into dbgrid (Read 4724 times)
xinyiman
Hero Member
Posts: 2256
(solved) Horizontal scroll event into dbgrid
«
on:
February 11, 2019, 10:41:44 pm »
Hi guys, I have a problem. In a dbgrid to the onselecteditor of a particular column I make a combobox appear to manipulate the data. Only when I move horizontally with the scrollbar also moves the combobox. I would like to intercept the horizontal scroll event to hide my combobox. Ideas? Thank you
«
Last Edit: February 13, 2019, 08:35:37 am by xinyiman
»
Logged
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1
daveinhull
Sr. Member
Posts: 297
1 divided by nothing must still be 1!
Re: Horizontal scroll event into dbgrid
«
Reply #1 on:
February 11, 2019, 10:47:33 pm »
Hi, use oncolexit to hide the control
Logged
Version #:1.8.4 Date 2019-01-08 FPC Version: 3.0.4 and SVN Revision 57972 for x86_64-win64-win32/win64
daveinhull
Sr. Member
Posts: 297
1 divided by nothing must still be 1!
Re: Horizontal scroll event into dbgrid
«
Reply #2 on:
February 11, 2019, 10:57:56 pm »
Hi Some more code that might help:
The the grid draws I use the DrawColumnCell event to (this is an example of using DateTimePicker, but it works with other controls
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
DBGrid1DrawColumnCell
(
Sender
:
TObject
;
const
Rect
:
TRect
;
DataCol
:
Integer
;
Column
:
TColumn
;
State
:
TGridDrawState
)
;
begin
if
(
gdFocused
in
State
)
then
begin
if
(
Column
.
Field
.
FieldName
=
'FuelDate'
)
then
with
DateTimePicker1
do
begin
Date
:
=
DBGrid1
.
SelectedField
.
AsDateTime
;
Left
:
=
Rect
.
Left
+
DBGrid1
.
Left
+
1
;
Top
:
=
Rect
.
Top
+
DBGrid1
.
Top
+
1
;
Width
:
=
Rect
.
Right
-
Rect
.
Left
+
1
;
Height
:
=
Rect
.
Bottom
-
Rect
.
Top
+
1
;
Visible
:
=
True
;
DateTimePicker1
.
SetFocus
;
DBGrid1
.
DataSource
.
Edit
;
The on ColExit
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
DBGrid1ColExit
(
Sender
:
TObject
)
;
begin
if
DBGrid1
.
SelectedField
.
FieldName
=
'FuelDate'
then
begin
if
DBGrid1
.
DataSource
.
State
in
[
dsEdit
,
dsInsert
]
then
DBGrid1
.
SelectedField
.
value
:
=
DateTimePicker1
.
Date
;
DateTimePicker1
.
Visible
:
=
False
end
;
And in the DatTimePicker, I catch certain keys to pass back to the grid
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
DateTimePicker1KeyDown
(
Sender
:
TObject
;
var
Key
:
Word
;
Shift
:
TShiftState
)
;
begin
if
(
Key
=
9
)
or
(
Key
=
38
)
or
(
Key
=
40
)
then
begin
DBGrid1
.
SetFocus
;
SendMessage
(
DBGrid1
.
Handle
,
WM_KeyDown
,
Key
,
0
)
;
end
end
;
Might be a little different that you are using but it might give you some clues.
Dave
Logged
Version #:1.8.4 Date 2019-01-08 FPC Version: 3.0.4 and SVN Revision 57972 for x86_64-win64-win32/win64
xinyiman
Hero Member
Posts: 2256
Re: Horizontal scroll event into dbgrid
«
Reply #3 on:
February 11, 2019, 11:54:23 pm »
I do not understand how it works. I move with the scrollbar to the right or left not with the keydown.
Logged
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1
daveinhull
Sr. Member
Posts: 297
1 divided by nothing must still be 1!
Re: Horizontal scroll event into dbgrid
«
Reply #4 on:
February 12, 2019, 12:08:19 am »
Sorry, misread your post. However, wouldn't logic say that if you are just scrolling with the scroll bar, then the same field remain selected and so the overplayed control should also remain visible until you leave the column?
Logged
Version #:1.8.4 Date 2019-01-08 FPC Version: 3.0.4 and SVN Revision 57972 for x86_64-win64-win32/win64
xinyiman
Hero Member
Posts: 2256
Re: Horizontal scroll event into dbgrid
«
Reply #5 on:
February 12, 2019, 12:20:18 am »
First image is ok, but second is incorrect because i move scrollbar to right
Logged
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1
daveinhull
Sr. Member
Posts: 297
1 divided by nothing must still be 1!
Re: Horizontal scroll event into dbgrid
«
Reply #6 on:
February 12, 2019, 07:24:07 am »
Ok, so if you use OnDrawColumnCell and check the field name to the one you want then it should work, see my example
[edit] and use the rect provided for the cell to position your control.
«
Last Edit: February 12, 2019, 09:43:47 am by daveinhull
»
Logged
Version #:1.8.4 Date 2019-01-08 FPC Version: 3.0.4 and SVN Revision 57972 for x86_64-win64-win32/win64
xinyiman
Hero Member
Posts: 2256
Re: Horizontal scroll event into dbgrid
«
Reply #7 on:
February 13, 2019, 08:35:26 am »
Thank you. Run correctly.
Logged
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
Databases
»
(solved) Horizontal scroll event into dbgrid
TinyPortal
© 2005-2018