Con una Simple línea se puede hacer un programa para saber la letra de tu DNI Documento Nacional de Identidad español.
Label1.Caption := Copy('TRWAGMYFPDXBNJZSQVHLCKET',StrToInt(Edit1.Text) mod 23+1,1);
Aquí está el programa.
unit letra; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Edit1DblClick(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: char); procedure Timer1Timer(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin try edit2.Caption := Copy('TRWAGMYFPDXBNJZSQVHLCKET',StrToInt(Edit1.Text) mod 23+1,1); except on econverterror do showmessage ('Error, este DNI no existe'); end ; end; procedure TForm1.Edit1DblClick(Sender: TObject); begin showmessage ('Ha realizado doble clic'); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char); begin if not (key in ['0'..'9', #8]) then key := #0; end; procedure TForm1.Timer1Timer(Sender: TObject); begin form1.Caption:= ('Hora del sistema ' + timeTostr(now)); end; end.