Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Handling key presses on a TEdit

Posted on 2008-10-25
5
Medium Priority
?
225 Views
Last Modified: 2013-11-23
Hi all,

Just a question I can't figure out.

I've got a TEdit which must handle the - and + of the numeric keypad, but not the - and + of the alphanumeri part of the keyboard.
When I put a break point on the OnKeyDown event I see that it makes a difference on the numeric and alphanumeric part of the - sign (#189 and #109).

But how can I code that when the subtract key is pressed on the numeric keypad that it will not put the - in the TEdit box and will do when the alphanumeric - is pressed?

Thanks in advance,

JeePeeTee
0
Comment
Question by:JeePeeTee
  • 3
  • 2
5 Comments
 
LVL 28

Accepted Solution

by:
2266180 earned 750 total points
ID: 22802915
something like this?
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    pressed:word;
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (key='-') and (pressed=109) then
    key:=#0;
end;
 
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  pressed:=key;
end;
 
end.

Open in new window

0
 
LVL 4

Author Comment

by:JeePeeTee
ID: 22803034
Thanks,

Kinda weird that you can't do it without declaring a pricate symbol.
But ah, well, it works!

0
 
LVL 4

Author Closing Comment

by:JeePeeTee
ID: 31509932
It works, though it's weird that it must be done with a private symbol.
0
 
LVL 28

Expert Comment

by:2266180
ID: 22803073
Why a B grade? see grading tips here: http://www.experts-exchange.com/help.jsp#hi403
0
 
LVL 4

Author Comment

by:JeePeeTee
ID: 22812682
It's a B-grade because the solution is good, but not excellent. Like I mentioned, the solution works, but I think it's kinda weird that I need a private symbol to pass trhough two seprate OnKey events.
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

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

Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…
Suggested Courses

971 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