un ejemplo (aunque es casi lo mismo que puso dec)
Código Delphi
[-]
procedure Form1.FormCreate(sender : TObject);
begin
Mirar_numero_intentos_fallidos;
if not Programa_registrado() then
if registro.ShowModal <> mrOk then Application.Terminate;
....
end;
procedure Mirar_numero_intentos_fallidos;
var
v : integer;
begin
v := Leer_intentos;
if v > 5 then begin Aviso(); application.Terminate; end;
end;
procedure Registro.Registrar;
var
id : string;
begin
if Edit2.Text <> 'clave' then
begin
ShowMessage('clave incorrecta');
Application.Terminate;
end;
id := CogerIddeDiscoDuro;
qsec.Insert;
qsec.FieldValues['id'] := id;
qsec.FieldValues['clave'] := Edit2.Text;
qsec.Post;
CreateFile(...)
CreateRegistryKey(...)
end;
function Form1.Programa_registrado() : boolean;
var
id : string;
begin
id := CogerIddeDiscoDuro;
Programa_registrado := fileexists(...) Programa_registrado := qsec.Locate('id',id,[]); Programa_registrado := GetRegistryKey(...) end;
no se... creo que poco mas se puede decir
a ver si te sirve entre todos
saludos