procedure TForm_main.FormCreate(Sender: TObject);
var
project: TProjectFile;
domfile:
file of TProjectFile;
begin
// Verzeichnis fuer Temp. Dateien und Sicherungen
cstore_temp := ExpandEnvStr('
%Appdata%\EA\Monetalis\.$$$');
// Verzeichnis fuer Lizenzen, Projektdateien
cStore_TODO := ExpandEnvStr('
%Appdata%\EA\Monetalis\.TODO');
// Index fuer StringGrid
i := 1;
// DOM-Datei erzeugen
project.ver := GetVersion;
// Welche Programmversion ?
project.licensecounter := 0;
// Angefangen wird bei 0 Lizenzen
project.datec := date;
// Aktuelles Datum wird bei erneutem Laden ausgelesen
project.datem := date - 60;
// 60Tage Laufzeit bei Testversionen
project.fileinfo := '
MONETALIS LicenseManager Project';
// Beschreibung
project.erkennung := '
DOM';
// Char fuer die ersten Bytes
project.
index := i;
// wird erhoeht, sobald Programm ein neues Projekt erzeugt
project.serial := '
';
// noch leer; wird aus Array gefuellt
try
AssignFile(domfile, cStore_TODO + '
\' + datetostr(date) + '
.dom');
// in .TODO ablegen
Rewrite(domfile);
// erneut schreiben (in RAM)
write(domfile, project);
// abschliessen
finally
CloseFile(domfile);
// Datei "schließen", also auf Platte schreiben
// kopieren nach temp
CopyFile(pchar(cStore_TODO + '
\' + datetostr(date) + '
.dom'),
pchar(cstore_temp + '
\' + datetostr(date) + '
.dom'), False)
end;
// ---------------------------------------------------------------------------
// PC-Name ermitteln
form_main.Caption :=
'
Monetalis FinanzV | Graphischer Lizenzmanager EA 2014 [ ' +
GetComputername + '
]';
StatusBar1.Panels[1].Text := '
PC: ' + GetComputername;
// ---------------------------------------------------------------------------
// ***************************************************************************
// StringGrid erhält seine Indices von 0 aufwärts
while length(trim(StringGrid1.Cells[2, i])) > 0
do
begin
inc(i);
end;
reg := TRegistry.Create(KEY_READ);
// nur lesen
{ Teilweises auslesen des Registry-Schlüssels,der die Aktivierungsdaten ethält }
reg.RootKey := HKEY_LOCAL_MACHINE;
// HKLM (nur Admins dürfen lesen und schreiben)
reg.OpenKey('
SOFTWARE\EA\MonetalisFV\LM\2014', true);
// ---------------------Einstellungen lesen--------------------
{ TODO -o EA Berlin -c Einstellungen : Einstellungen werden noch nicht wirksam! }
ini := TIniFile.Create(cStore_TODO + '
user_defined.sol');
// erzeugen in RAM
try
if ini.readString('
StringGrid1', '
ColorHighlighting', '
') = '
Y'
then
Formsettings.colorset.Checked := true
// wenn Y in der Ini-Datei als Wert steht, dann Haken setzen
else
Formsettings.colorset.Checked := False;
// andernfalls (also ein N in der Datei), dann kein Haken
if ini.readString('
VisualEffect', '
Design', '
')
= Formsettings.designauswahl.Items.Text
then
Formsettings.CheckBox1.Checked := true
// Prinzip s. vorherige Abfrage; anstelle dessen hier :
// die Oberflaeche des Programmes betreffend
else
Formsettings.CheckBox1.Checked := False;
finally
ini.free;
// Objekt freigeben, sonst EInvalidPointer except.
end;
// ---------------------Testversion----------------------------
StringGrid1.Cells[1, i] := reg.readString('
Product');
// Produkt
// Seriennummer der Testversion
StringGrid1.Cells[2, i] := reg.readString('
TL');
StringGrid1.Cells[3, i] := reg.readString('
LNr');
StringGrid1.Cells[4, i] := datetostr(reg.ReadDate('
ExpDate'));
// ggf. DateTimeToStr()
// Ablaufdatum
StringGrid1.Cells[5, i] := reg.readString('
PCName');
// PC-Name
// ***************************************************************************
// ---------------------Vollversion----------------------------
StringGrid1.Cells[1, i] := reg.readString('
Product');
StringGrid1.Cells[2, i] := reg.readString('
FV');
// FullVersion
// Bei Vollversionen nur der Dateiname !!!
(*
Einstellungen einlesen und korrekt deklarieren; Nutzer kann eine bereits aktivierte
Textversion nicht doppelt aktivieren!
*)
// stringgrid erhält seine spaltennamen
with StringGrid1
do
begin
Cells[0, 0] := '
Index';
Cells[0, 1] := inttostr(0 + i);
// weiterführen
Cells[1, 0] := '
Produkt';
Cells[2, 0] := '
Seriennummer\GUID';
Cells[3, 0] := '
Lizenz-Nr.';
Cells[4, 0] := '
Ablaufdatum';
Cells[5, 0] := '
PC-Name';
// früher defaut-lizenz jetzt pc-name
end;
// Zeile dem "LOG" hinzufuegen
log.Lines.Add('
Getting common information.......SUCCESS');
// Erstes Panel in der StatusBar versorgen
StatusBar1.Panels[0].Text := '
Arbeitsplatz: 1';
// Zweites Panel versorgen
StatusBar1.Panels[2].Text := '
Datum : ' + datetostr(date);
// Loakle IP auslesen (!)
GetLocalIPs(Memo1.Lines);
// Falls keine IP vorhanden, dann N.N. eintragen, ...
if not GetLocalIPs(Memo1.Lines)
then
StatusBar1.Panels[3].Text := '
IPv4-Adresse: N. N.'
else
// andernfalls IP aus Memo an StatusBar-Panel 4 senden (von 0 aus)
StatusBar1.Panels[3].Text := '
IPv4-Adresse: ' + Memo1.Lines.Text;
end;