Mi ojo compilador me dice que en este código hay un begin-end sobrantes:
Código Delphi
[-]
begin
if Key = #13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
codigo.SetFocus;
end
end;
Justamente el begin y el end exteriores.
En lo demás tendría que probarlo. Por otro lado: Sugiero empezar a identar de forma apropiada el código, por favor. Asi no hay quien le entienda.
Saludos,