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
Offical launch of the 1 B...
by
Gustavo 'Gus' Carreno
[
Today
at 12:50:46 am]
what to do if my target M...
by
Laksen
[
Today
at 12:49:12 am]
For-in loop over constant...
by
ASerge
[
Today
at 12:36:09 am]
Converting a string/index...
by
TRon
[April 18, 2024, 11:56:37 pm]
exclude ALL packages from...
by
PascalDragon
[April 18, 2024, 11:33:29 pm]
Demoscene The Champs Crac...
by
KodeZwerg
[April 18, 2024, 11:29:50 pm]
Poll: Watches and Display...
by
440bx
[April 18, 2024, 10:55:14 pm]
Database standards OR Am ...
by
dseligo
[April 18, 2024, 10:50:26 pm]
BUG REPORT: Unable to gen...
by
PascalDragon
[April 18, 2024, 10:24:23 pm]
How to: create DLL file f...
by
paule32
[April 18, 2024, 10:23:59 pm]
Have anyone develop UEFI ...
by
PascalDragon
[April 18, 2024, 10:14:15 pm]
Lazarus for Windows on aa...
by
PascalDragon
[April 18, 2024, 10:09:10 pm]
The weird Rewrite bug
by
PascalDragon
[April 18, 2024, 09:58:53 pm]
Assign (textfile) not com...
by
PascalDragon
[April 18, 2024, 09:51:50 pm]
Question for people who h...
by
PascalDragon
[April 18, 2024, 09:44:32 pm]
Linux Workspaces -- StayO...
by
AmatCoder
[April 18, 2024, 08:34:20 pm]
I just released a commerc...
by
Seenkao
[April 18, 2024, 07:57:21 pm]
Access violation when re-...
by
TRon
[April 18, 2024, 07:37:31 pm]
[SOLVED] assembler name i...
by
TRon
[April 18, 2024, 07:26:33 pm]
A fairly simple sound sol...
by
KodeZwerg
[April 18, 2024, 07:01:52 pm]
Step-into the field sette...
by
Martin_fr
[April 18, 2024, 06:54:19 pm]
[Fun Fact] PNG and Micros...
by
Ten_Mile_Hike
[April 18, 2024, 06:24:19 pm]
HTTP/2+HTTP/1.1+WebSocket...
by
iLya2IK
[April 18, 2024, 06:14:30 pm]
Improvement of TFPTimerTh...
by
AlexTP
[April 18, 2024, 05:56:38 pm]
Arabic text, problem on L...
by
nouzi
[April 18, 2024, 05:21:27 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: (solved) Horizontal scroll event into dbgrid (Read 4203 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