Hallo m-werk,
im finally Teil deines Codes willst du ja, falls a den Wert 0 hat einen Freischaltcode einlesen und nur, wenn er korrekt ist, diesen speichern und das Programm starten. :
Code:
finally
REG.Free;
if a=0 then
begin
{ Neuen Code einlesen }
fCode := '';
{ Maximal drei Versuche }
versuch := 0;
gefunden := False;
repeat
try
fCode := inputbox('Programm freischalten','Code','');
gefunden := CheckCode(IntToStr(fCode), 25, 7);
Inc(versuch);
except
{ hat der User möglicherweise gar keine Zahl eingegeben? }
on
exception do
Inc(versuch);
until gefunden or versuch =3;
end
else
gefunden := CheckCode(IntToStr(a),25, 7);
if gefunden then
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
if reg.OpenKey('\Software\SELF', True) then
begin
reg.WriteString('CODE??',IntToStr(a));
end;
Application.ShowMainForm := True;
end;
Es geht bestimmt auch einfacher, aber dieser Code basiert auf deinem Grundgerüst.
Du musst noch fCode als String, V versuch als Integer und gefunden als Boolean deklarieren.