Hallo m-werk,
hier ein einfaches Beispiel; Du musst dafür die Units REGISTRY und DATEUTILS einbinden. Ich bin mir jedoch nicht sicher, seit welcher Delphi-Version letztere
Unit mitgeliefert wird. Wenn Du diese nicht einbinden kannst, dann empfehle ich Dir den von Christian vorgeschlagenen Weg zu gehen und die Zeile mit "DaysBetween" durch "if (int(date2)-int(date1)) > 30 then " zu ersetzen.
Code:
procedure TForm1.Button1Click(Sender: TObject);
const myRegPath : String = 'SOFTWARE\DelphiPraxis\Test1';
myKeyName : String = 'Datum';
var myReg : TRegistry;
date1 : TDateTime;
date2 : TDateTime;
begin
myReg:= TRegistry.Create;
myReg.RootKey:= HKEY_CURRENT_USER;
// Pfad öffnen, anlegen falls noch nicht vorhanden
myReg.OpenKey( myRegPath, TRUE );
If (not myReg.ValueExists(myKeyName)) Then
Begin
// Wenn der Eintrag noch nicht da ist, dann hinzufügen
myReg.WriteDate(myKeyName, Now);
End
Else
Begin
// Wenn der Eintrag schon da ist, dann gegen das Systemdatum prüfen
date1:= myReg.ReadDate(myKeyName);
date2:= Now;
If (DaysBetween( date1, date2 ) > 30) Then
Begin
ShowMessage('30 Tage und keinen einzigen mehr!');
Application.Terminate;
End;
End;
myReg.Free;
end;
Die Benennung der Variablen ist ein wenig grauslig; aber als Demo sollte es reichen...
Grüße,
Daniel
Daniel R. Wolf