unit Vizh1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const alf = 'ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝßÙØÜÀÑ';//áâ÷çäå³öúéêëìíîïðòóôõæèãþûýÿùøüàñ'; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Label1: TLabel; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin if closequery then close; end; procedure TForm1.Button1Click(Sender: TObject); var m,n: byte; s: string; key,code: string; i: integer; begin key:= Edit1.Text; code:= Edit2.Text; n:= 0; s:= ''; for m:=1 to length(code) do begin inc(n); if n>length(key) then n:= 1; if code[m]=key[n] then i:= 1 else if Pos(code[m],alf)>Pos(key[n],alf) then i:= Pos(code[m],alf) - Pos(key[n],alf) + 1 else i:= length(alf) - Pos(key[n],alf) + Pos(code[m],alf)+1; s:= s+alf[i]; end; Label1.Caption:= s; end; end.