تم ترجمة الكيجن للغة الدلفي:
procedure TForm1.Button1Click(Sender: TObject);
const
MagicNums: array[0..21] of Integer = (38, 56, 57, 57, 99, 15, 58, 12, 13,
17, 19, 18, 88, 58, 52, 52, 12, 13, 12, 57, 52, 98);
var
i, X, N_Len: Integer;
a: array[0..5] of Integer;
Name: string;
begin
a[0] := 0; a[1] := 0; a[2] := 0;
a[3] := 99; a[4] := 99; a[5] := 0;
Name := UpperCase(Trim(Edit1.Text));
N_Len := Length(Name);
if N_Len < 3 then
begin
Edit2.Text := 'Name must be more than 03 Chars';
Exit;
end;
X := 0;
for i := 1 to N_Len do
begin
a[X] := (Ord(Name<em>) * N_Len + a[X]) mod $64;
if a[X] >= $64 then
a[X] := a[X] mod $64;
X := (X + 1) mod 3;
end;
a[5] := (a[5] + a[0] * N_Len + a[1] * N_Len + a[2] * N_Len) mod $16;
a[5] := MagicNums[a[5]];
Edit2.Text := Format('%2.2d%2.2d%2.2d%2.2d%2.2d%2.2d', [a[3], a[5], a[4], a[0], a[1], a[2]]);
end;
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"