Solved

Handling key presses on a TEdit

Posted on 2008-10-25
5
219 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 250 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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Mobile Keyboard covers the display of the TMemo 3 90
find a node in VST 2 69
CheckListBox usage 3 60
scroll down TListBox component in Delphi 1 11
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 I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

825 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