Moin m-werk,
ich würd's so machen:
In der Projektdatei prüfen, ob das Programm gestartet werden darf:
Code:
begin
Application.Initialize;
if CheckRegistry then
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
wobei dann, in einer
Unit, noch folgendes steht:
Code:
function CheckRegistry : Boolean;
function RegOK : Boolean;
implementation
uses unit2;
{$R *.DFM}
function CheckRegistry : Boolean;
var
RegForm : TRegForm;
iResult : integer;
begin
Result := RegOK;
if Result then
begin // Registrierung erfolgt, dann kann das Programm starten
exit;
end;
RegForm := TRegForm.Create(nil); // aus Unit2
try
iResult := RegForm.ShowModal;
Result := iResult = mrOK;
finally
FreeAndNil(RegForm);
end;
end;
function RegOK : Boolean;
begin
Result := false;
end;
Das ist jetzt nur stilisiert. RegOk liefert true zurück, wenn ein gültiger Eintrag in der Registry besteht. Ist das nicht der Fall, wird das Abfrageformular geöffnet. Im Erfolgsfalle, gibt das dann das ModalResult mrOK zurück, ansonsten mrCancel.
Ach ja, das TRegForm darf natürlich nicht in der Projektdatei erzeugt werden.