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
Linux Workspaces -- StayO...
by
VisualLab
[
Today
at 11:25:09 pm]
How to: create DLL file f...
by
rvk
[
Today
at 11:21:14 pm]
InstallAware Using Lazaru...
by
VisualLab
[
Today
at 11:08:24 pm]
How would you define a fi...
by
wp
[
Today
at 11:04:00 pm]
Directx9 with mylogo insi...
by
KodeZwerg
[
Today
at 11:03:54 pm]
Lazarus for Windows on aa...
by
Wallaby
[
Today
at 10:25:46 pm]
Azure sql database will n...
by
dseligo
[
Today
at 10:15:27 pm]
location of non visual co...
by
wp
[
Today
at 10:09:42 pm]
[SOLVED] TDbf table, Leve...
by
1HuntnMan
[
Today
at 10:03:16 pm]
Doomed name
by
Martin_fr
[
Today
at 09:09:52 pm]
Lazarus editor feature re...
by
440bx
[
Today
at 08:52:28 pm]
Slow copying of small str...
by
Thaddy
[
Today
at 06:37:29 pm]
lazarus-project_3.2.0-0_a...
by
midigark
[
Today
at 06:09:40 pm]
Text orientation in TMemo...
by
wp
[
Today
at 05:51:25 pm]
TBGRABitmap.TextSize retu...
by
circular
[
Today
at 05:24:04 pm]
BUG REPORT: Unable to gen...
by
gasensor
[
Today
at 05:10:20 pm]
[solved]FP IDE(FP.exe) fa...
by
gasensor
[
Today
at 04:45:40 pm]
Inherits forms and releas...
by
ASerge
[
Today
at 03:37:45 pm]
For-in loop over constant...
by
VisualLab
[
Today
at 01:49:14 pm]
The weird Rewrite bug
by
Kays
[
Today
at 01:23:40 pm]
FpDebug unexpected Assemb...
by
440bx
[
Today
at 12:54:43 pm]
Arabic text, problem on L...
by
Zaher
[
Today
at 12:34:05 pm]
RayLib 5.0
by
Guva
[
Today
at 11:25:40 am]
CocoaInt.CocoaIconUse no ...
by
MISV
[
Today
at 09:20:40 am]
Does anyone know why this...
by
TYDQ
[
Today
at 06:39:17 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: (solved) Horizontal scroll event into dbgrid (Read 4198 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