Punct pe suplimentar

Punctul pentru a adăuga. claviatură

Bună ziua, dragă maestru.

Te rog spune-mi cum să scap de virgulă pe tastatură, care, în loc la punctul rusesc apare?

Multumesc anticipat pentru ajutor.

În cazul în care „EN“ în structura pentru a adăuga. tastatură, apăsați „“ (# 46), vom obține "" (# 46).
Și dacă „ÎF“ în structura pentru a adăuga. tastatură, apăsați „“ (# 46), obținem "" (# 44).

Obiectiv: Prin apăsarea butonului „“ pentru suplimentare. Dispunere tastatură "RU" get "". mai degrabă decât „“.

Recent, această întrebare KAIF zadoval „ohm. Uită-te.

Nu utilizați Application.OnMessage inutil IMHO. Pentru soluții „globale“ mostenitor scris TCustomEdit, care se suprapune DoKeyPress

> Am nevoie la nivel global.

Application.OnMessage nu ajuta?

> Mă întreb de ce face acest lucru face un punct spre dreapta.

Operatorii clienților noștri că butonul este foarte utilizează în mod activ, deoarece suma injectată folosind partea dreaptă a tastaturii cu o singură mână.

Cu toate acestea, acest comportament punct gri pe care tocmai am învățat din această ramură. Operatorshi, de regulă, nu se schimba limba, ei întotdeauna română.
Deci, nu cred că are sens să-și petreacă pe un „leac“ de data aceasta.

capabil să articuleze ceea ce am vrut să spun așa murdar:

Faptul că, în Editore va fi un punct sau o virgulă depinde de configurația tastaturii curentă, mai degrabă decât setările regionale selectate în sistem.

În cazul în care este depășită la nivelul aplicației specifice mesajelor fereastra de procesare - ar fi frumos. Eu încă nu am urca înapoi, dar mi se pare că totul va fi puncte triste și obih de unul și același cod virtual.
Dacă cineva știe ce nu este - voi fi foarte recunoscător pentru acest bit de informație. Mi-ar economisi timp.
Mai mult decât atât, nu numai pentru mine, poate, interesant.

Aici, am găsit în ajutor.
De fapt,
Taste virtuale:

VK_NUMPAD0 0 cheie (tastatura numerică)
1 Tasta VK_NUMPAD1 (tastatura numerică)
2 Tasta VK_NUMPAD2 (tastatura numerică)
3 Tasta VK_NUMPAD3 (tastatura numerică)
4 Tasta VK_NUMPAD4 (tastatura numerică)
5 Tasta VK_NUMPAD5 (tastatura numerică)
6 Tasta VK_NUMPAD6 (tastatura numerică)
7 Tasta VK_NUMPAD7 (tastatura numerică)
8 Tasta VK_NUMPAD8 (tastatura numerică)
9 Tasta VK_NUMPAD9 (tastatura numerică)

Tasta VK_MULTIPLY Multiplicare (tastatura numerică)
VK_ADD Adăugați o cheie (tastatura numerică)
Tasta VK_SEPARATOR Separator (tastatura numerică)
Tasta VK_SUBTRACT Subtract (tastatura numerică)
Tasta VK_DECIMAL zecimale (tastatura numerică)
Tasta Divide VK_DIVIDE (tastatura numerică)

Într-adevăr coduri „tastatură numerică“ - specială și, probabil, se poate face ceva. Trebuie să ne gândim.

Acolo este, pur și simplu ei nu sunt vizibile. Cu excepția profilurilor de căutare.

Aici este meu (cu ajutorul căpitanilor respectate), pentru a rezolva partea fracționară razdeletilem română:

var
# XA0; is_VK_DECIMAL: boolean; // variabila la nivel mondial

Procedura TMainForm.FormCreate (Expeditor: TObject);
începe
# XA0; is_VK_DECIMAL: = false;
# XA0; application.OnMessage: = application_OnMessage;
se încheie;

Procedura TMainForm.application_OnMessage (var Msg: tagMsg; var Handled: boolean);
începe
# XA0; dacă Msg.message = WM_KEYDOWN # XA0; apoi
# XA0; # XA0; is_VK_DECIMAL: = (Msg.wParam = VK_DECIMAL);
# XA0; dacă Msg.message = WM_CHAR atunci
# XA0; # XA0; dacă is_VK_DECIMAL apoi dacă char (Msg.wParam)<>DecimalSeparator începe apoi
# XA0; # XA0; # XA0; Msg.wParam: = ord (DecimalSeparator);
# XA0; # XA0; # XA0; is_VK_DECIMAL: = false;
# XA0; # XA0; end;
se încheie;

Memorie: 0,75 MB
Timpul: 0,097 c