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
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
A "leisure" question on W...
by
gidesa
[
Today
at 03:17:10 pm]
Curling Pythagoras Tree: ...
by
AlexTP
[
Today
at 03:07:53 pm]
Project fails on run but ...
by
Martin_fr
[
Today
at 02:52:09 pm]
[SOLVED] Combined pointer...
by
CM630
[
Today
at 02:48:41 pm]
Complex package installat...
by
JonBondy
[
Today
at 02:46:19 pm]
Controlling the behavior ...
by
rvk
[
Today
at 02:35:41 pm]
Using KeyPress event, how...
by
Zvoni
[
Today
at 02:24:42 pm]
a Unit problem?
by
Thaddy
[
Today
at 01:56:12 pm]
Understanding and adjusti...
by
ArchChem
[
Today
at 12:58:12 pm]
Any upgrades to fpWeb pag...
by
marcov
[
Today
at 12:50:25 pm]
Help needed with Cairo / ...
by
Roland57
[
Today
at 12:25:16 pm]
JEDI error but unit compi...
by
Roland57
[
Today
at 11:50:11 am]
Configure JCF messages
by
DomingoGP
[
Today
at 11:26:55 am]
IDE instability on Raspbe...
by
rvk
[
Today
at 10:37:14 am]
Boleeman's projects are p...
by
AlexTP
[
Today
at 10:18:04 am]
Your best UI design - con...
by
circular
[
Today
at 09:36:11 am]
ZeosDBO and querys using ...
by
Zvoni
[
Today
at 09:27:17 am]
STARS with line border st...
by
Boleeman
[
Today
at 09:13:29 am]
Zeos components. Had to c...
by
dbannon
[
Today
at 07:26:11 am]
A button require administ...
by
Fibonacci
[
Today
at 05:57:21 am]
How to detect one externa...
by
d2010
[
Today
at 12:24:32 am]
Center Lost Window featur...
by
Tony Stone
[
Today
at 12:06:16 am]
need advice about the fol...
by
jamie
[March 27, 2024, 09:56:39 pm]
[SOLVED] Completion box s...
by
Martin_fr
[March 27, 2024, 08:44:09 pm]
Dialog ShowModal and an i...
by
d7_2_laz
[March 27, 2024, 08:25:18 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: (solved) Horizontal scroll event into dbgrid (Read 4128 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