OnKeyPress problem s WinXP

2 отговора 44 прегледа
#1

OnKeyPress problem s WinXP

Opitah se da napravq taka, che moqta programa da ima vuzmojnostta da pokazva kirilica, bez da e instalirana suotvetnata klaviatura (razchitam samo na Multilanguage support-a). Eto kak izglejda koda:

procedure TfmMain.edtInputKeyPress(Sender: TObject; var Key: Char);

var
i: Integer;

const
bulBDS: array[0..31] of Char = (
'd', '/', 'l', 'h', 'o', 'e', 'g', 'p', 'r', 'x',
'u', '.', ';', 'k', 'f', 'm', ',', 'i', 'j', 'w',
'b', 'n', '[', '''', 't', 'y', 'c', 'q', 'a', 'v',
'z', 's');

begin
for i := 0 to 31 do
if AnsiLowerCase(Key) = bulBDS[ i] then
begin
Key := Chr(224 + i);
Break;
end;
end;


Pod Windows 9x/ME vurvi dobre, no sega kato go testvah na XP vidqh, che ima problem (veroqtno neshtata stoqt po-sushtiq nachin i pod NT/2000). Vupreki, che sum si naglasil System locale na BG, mi izlizat bukvite s udareniqta. Predpolagam Windows-a proverqva kakvo pokazva language indicatora i tui kato toi si e na English pokazva bukvite ot latinskata tablica. Probvah SetThreadLocale(1026) i estestveno nqmashe rezultat. Charset-a na Edit-a mi e naglasen na RUSSIAN, no estestveno i tova ne okazva nikakvo vlianie na XP-to. Nqkoi seshta li se za nachin , po koito da go izluja

Blagodarq predvaritelno

PS Awe tova [ i] shto pak pravi problemi na [ pre] !?

Отговор
в отговор на Wise Guy #2

Re: OnKeyPress problem s WinXP

Вж. [линк]

Отговор
в отговор на NDeu #3

Re: OnKeyPress problem s WinXP

Da tiq funkcii sum gi vijdal, no ne mi e tova vuprosa. Vsushtnost mislq, che nqma smisul da vi pitam, zashtoto ogranichenieto si idva ot Windows (2000) XP. Qvno ne moga da nqmam instalirana Bulgarska klaviatura (ili pone da ne e aktivirana v momenta) i da "pisha" na bulgarski vuv ANSI kontrola.

Pod 9x/ME nqma problemi zashtoto tam zavisi ot Charset-a i az si go zadavam... Qvno samo Unicode e nachina...

by Waz Gaa
[email protected]
Отговор