Entwickler-Ecke

Sonstiges (Delphi) - Ende nach Laufzeit


Royer - Sa 03.11.07 10:29
Titel: Ende nach Laufzeit
Wie kann ich auf möglichst einfache Weise programmieren, dass sich nach einem gewissen Datum zB. 31.12.2007, das von mir Programmierte Programm nicht mehr öffnen lässt? :?:


Moderiert von user profile iconjasocul: Topic aus VCL (Visual Component Library) verschoben am Mo 05.11.2007 um 09:14


Agawain - Sa 03.11.07 10:54

hi

wenn es Dir darum geht, dass eine bestimmte Nutzungzeit überschritten ist, gar nicht...das Systemdatum, auf das Du Dich beziehen musst, läßt sich nunmal manipulieren.

Gute Karten hättest Du allerdings, wenn Dein Programm ein Terminkalender ist, der logischerweise auf ein stimmendes System-Datum angewiesen ist.


dummzeuch - Sa 03.11.07 11:11
Titel: Re: Ende nach Laufzeit
user profile iconRoyer hat folgendes geschrieben:
Wie kann ich auf möglichst einfache Weise programmieren, dass sich nach einem gewissen Datum zB. 31.12.2007, das von mir Programmierte Programm nicht mehr öffnen lässt? :?:


z.B. im Projektfile:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
  if Now > EncodeDateTime(...) then begin
    ShowMessage(...)
  end else begin
    // hier der von der IDE generierte Code
  end;
end.


Aber gib Dich keinen Illusionen hin, was die Sicherheit einer solchen Abfrage angeht: Das ist simpel und leicht rauszupatchen. Alles kompliziertere ist Aufwand, den man meines Erachtens lieber in das Programm selbst stecken sollte.

twm


Royer - Mo 05.11.07 09:00

Könnte es auch so Funktionieren?


Delphi-Quelltext
1:
2:
3:
4:
begin
if date > strtodate('05.12.2007')
then showmessage('Sie sind im Besitz einer Testversion');
end;


Gruss Royer


oldmax - Mo 05.11.07 09:15

Hi
Ich würd's mit einem MessageDlg in Form.Create machen und danach ein Close, wenn Date > des vorgegebebnen Datums.
MessageDLG läßt dir wenigstens Zeit, den Dialog zu lesen. Erst beim Schließen wird der Form.Close -Befehl ausgeführt.
Nicht sicher gegen böse Buben, aber ich denke, wenn's Programm was taugt und nicht allzuteuer ist, werden sich seriöse Anwender das Programm käuflich zulegen....
Gruß oldmax


Royer - Mo 05.11.07 09:28

Ok, so hab ich mir das Vorgestellt. Tip Top!

Ich bin eben einfach nicht sicher 0b man den Date Typ einfach so vergleichen kann. Könnt ja sein das zum Beispiel 31.12.2007 gösser ist als 01.01.2008, obwohl ja das in der Realität nicht stimmt.
Vergleicht der wirklich die höhe des Datums oder eben nur der Zahlenwert? :roll:


Stefan.Buchholtz - Mo 05.11.07 09:34

user profile iconRoyer hat folgendes geschrieben:
Ok, so hab ich mir das Vorgestellt. Tip Top!

Ich bin eben einfach nicht sicher 0b man den Date Typ einfach so vergleichen kann. Könnt ja sein das zum Beispiel 31.12.2007 gösser ist als 01.01.2008, obwohl ja das in der Realität nicht stimmt.
Vergleicht der wirklich die höhe des Datums oder eben nur der Zahlenwert? :roll:


Das Datum (TDateTime) ist intern ein Fliesskommawert, der die Anzahl der Tage seit dem 30.12.1899 enthält. Deswegen lassen sich Datumswerte einfach vergleichen und auch damit rechnen: Datum1 - Datum2 = Anzahl der Tage.

Stefan


jaenicke - Mo 05.11.07 09:35

user profile iconRoyer hat folgendes geschrieben:
Ich bin eben einfach nicht sicher 0b man den Date Typ einfach so vergleichen kann. Könnt ja sein das zum Beispiel 31.12.2007 gösser ist als 01.01.2008, obwohl ja das in der Realität nicht stimmt.
Vergleicht der wirklich die höhe des Datums oder eben nur der Zahlenwert? :roll:
Wenn du ein TDate vergleichst, dann entspricht der Vergleich dem korrekten Datumsvergleich. Zur Erklärung: Ein TDate ist nur ein FLießkommawert, wobei ein Tag jeweils 1 ist.
44,0 ist z.B. der 05.01.2007, dann ist 45,0 der 06.01.2007 ;-), usw.
In Wirklichkeit sind die Zahlen zwar viel größer, aber das Prinzip ist das selbe, und wenn du eine Uhrzeit hast, dann ist das eben pro Stunde 1/24stel.


Royer - Mo 05.11.07 09:40

Ok ich habs verstanden Danke! Das bedetet es Funktioniert! Hät nicht gedacht, dass das so einfach geht.
Gruss Royer! :D