home *** CD-ROM | disk | FTP | other *** search
- Unit Czech;
-
- interface
-
- Uses App, Drivers, Objects;
-
- const CKbd : Boolean = True; { Pouæít çeskou klávesnici }
- SwapYZ : Boolean = False; { Prohodit YZ }
-
- chNic = 0;
- chCarka = 1;
- chHacek = 2;
- chPrehl = 3;
-
- Prehl : string[6] = 'uoaUOA';
- SPrehl : string[6] = 'üöäÜÖÄ';
- Carky : string[16] = 'aeiouyrlAEIOUYRL';
- SCarky : string[16] = 'áéíóúÿ¬ìÅÉïòù¥½è';
- Hacky : string[22] = 'cdelnorstuzCDELNORSTUZ';
- SHacky : string[22] = 'çâêîñô⌐¿ƒûæÇàë£Ñº₧¢åªÆ';
-
-
- type PCApp = ^TCApp;
- TCApp = object(TApplication)
- HacCar : Byte;
- constructor Init;
- procedure GetEvent(var Event : TEvent); virtual;
- end;
-
- {----------------------------------------------------------}
-
- implementation
-
- constructor TCApp.Init;
- begin
- inherited Init;
- HacCar:=chNic;
- SwapYZ:=True;
- end;
-
- procedure TCApp.GetEvent(var Event : TEvent);
- var F : Char;
- begin
- inherited GetEvent(Event);
- if (Event.What=evKeyDown) and (CKbd=True) then
- begin
- F:=Event.CharCode;
- if SwapYZ then
- begin
- case F of
- 'z' : F := 'y';
- 'Z' : F := 'Y';
- 'y' : F := 'z';
- 'Y' : F := 'Z';
- end;
- end;
-
- if (HacCar = chHacek) and (Pos(F,Hacky)<>0) then
- begin
- F:=SHacky[Pos(F,Hacky)];
- HacCar:=chNic;
- end;
-
- if (HacCar = chCarka) and (Pos(F,Carky)<>0)
- then
- begin
- F:=SCarky[Pos(F,Carky)];
- HacCar:=chNic;
- end;
-
- if (HacCar = chPrehl) and (Pos(F,Prehl)<>0) then
- begin
- F:=SPrehl[Pos(F,Prehl)];
- HacCar:=chNic;
- end;
-
- case Event.KeyCode of
- 561 : F:='+'; 818 : F:='ê';
- 1075 : F:='¿'; 1332 : F:='ç';
- 1589 : F:='⌐'; 1846 : F:='æ';
- 2103 : F:='ÿ'; 2360 : F:='á';
- 2617 : F:='í'; 2864 : F:='é';
- 3117 : F:='='; 6747 : F:='ú';
- 7005 : F:=')'; 10043 : F:='û';
- 10279 : F:='¡'; 13100 : F:=',';
- 13358 : F:='.'; 13615 : F:='-';
- 545 : F:='1'; 832 : F:='2';
- 1059 : F:='3'; 1316 : F:='4';
- 1573 : F:='5'; 1886 : F:='6';
- 2086 : F:='7'; 2346 : F:='8';
- 2600 : F:='9'; 2857 : F:='0';
- 3167 : F:='%'; 6779 : F:='/';
- 7037 : F:='('; 10042 : F:='"';
- 10274 : F:='!'; 13116 : F:='?';
- 13374 : F:=':'; 13631 : F:='_';
-
- 3389 : if HacCar<>chCarka then
- begin
- Event.What:=evNothing;
- HacCar:=chCarka;
- end;
- 3371 : if HacCar<>chHacek then
- begin
- Event.What:=evNothing;
- HacCar:=chHacek;
- end;
- 10592 : if HacCar<>chPrehl then
- begin
- Event.What:=evNothing;
- HacCar:=chPrehl;
- end;
- end;
- Event.CharCode:=F;
- end;
- end;
- end.