cxGrid üzerinde sayısal tutar alanına E harfi girişini engel

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

cxGrid üzerinde sayısal tutar alanına E harfi girişini engel

Mesaj gönderen habikus »

Merhabalar,

Veritabanı tablosuna bağlı cxGrid üzerinde tutar isimli alan var. Bu alana sadece sayısal değer giriyorum. Fakat "E" harfi için bir istisna oluyor. Yani "E" harfi girişine nasıl engel olabilirim?
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: cxGrid üzerinde sayısal tutar alanına E harfi girişini e

Mesaj gönderen mkysoft »

E harfi bilimsel değer girmeye yarar. 2E3 mesala 2 çapı 10 üzeri 3 demektir. Bu nedenle girilmesinde bir sakınca yok. Siz yinede key up/down/press olaylarında engelleyebilirsiniz.
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: cxGrid üzerinde sayısal tutar alanına E harfi girişini e

Mesaj gönderen habikus »

İlgilendiğiniz için teşekkürler.
Fakat fatura üzerinde işlem yaparken 2E34 gibi birşey yazılınca çarpma ve bölme gibi işlemlerde hata veriyor. Normat edit'in keypress olayına kod yazarak buna engel oluyorum fakat cxGrid üzrindeki alanların keypress ve keydown olayı yok.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: cxGrid üzerinde sayısal tutar alanına E harfi girişini e

Mesaj gönderen mkysoft »

Nasıl yaptığımı net olarak hatırlayamadım. Gridin view'ine ait olaylara bir bakın. Ayrıca formun keypress olayını da kullanabilirsiniz belki.
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: cxGrid üzerinde sayısal tutar alanına E harfi girişini e

Mesaj gönderen habikus »

Problem Çözüldü :

procedure TForm16.cxGrid1DBTableView1EditKeyPress(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit; var Key: Char);
begin
if AItem.Index = 6 then
BEGIN

if not (key in ['0'..'9',',',#8]) then
begin
Key:=#0; //girilen karakter rakam veya backspace değilse null(#0)'a dönüştür
Beep; //bip sesi ile kullanıcıyı uyar.
end;
END;
end;
Cevapla