Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

TStringGrid.OnKeyDown event not working

Posted on 2008-10-30
1
Medium Priority
?
988 Views
Last Modified: 2013-11-12
Hi.

I have a very strange behavior with OnKeyDown event for a TStringGrid control.

I have a heavily modified control derived from TStringGrid. In this control I intercept the "key down" in order to delete the selected cell(s) when the user presses the Delete key on his keyboard.
It worked until recently when I discovered that pressing the Delete key does nothing.


STRANGE is that if I put a break point at the beginning of the procedure, the programs step through code and the program works (the code is executed). After this "glitch" is overpass first time, then the program will always work ok.

There is a trick that will do the work: I need to click (focus) another control on the same form where my grid is placed then to return (click) to the grid. After this, the Delete key is working.

Any ideas?



procedure TMyGrid.KeyDown(var Key: Word; Shift: TShiftState);
begin                                                                
 case Key of                        <--- if I pub breakpoint here it works !!!!!!!
   VK_LEFT  : if CursorPos-1 > 0 then
               begin
                  ...
               end;
   VK_DELETE: begin
               inherited KeyDown(Key, Shift);
               DeleteCells(Row);
               Bip30;
              end;
   VK_Up    : begin
                      ...
                    end;

  else inherited KeyDown(Key, Shift);
 end;
end;

PS: VK_Left, VK_Up, etc behave in the same way as VK_delete.
0
Comment
Question by:fedra
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 

Accepted Solution

by:
fedra earned 0 total points
ID: 22842200
Fixed. I accidentally set the focus on a different control. So even if the grid had the cursor on it, the focus was on a different control.
0

Featured Post

The top UI technologies you need to be aware of

An important part of the job as a front-end developer is to stay up to date and in contact with new tools, trends and workflows. That’s why you cannot miss this upcoming webinar to explore the latest trends in UI technologies!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Make the most of your online learning experience.
We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Simple Linear Regression
Starting up a Project

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question