Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Lizenzabfrage vor Programmstart (https://www.delphipraxis.net/127819-lizenzabfrage-vor-programmstart.html)

DeddyH 21. Jan 2009 16:39

Re: Lizenzabfrage vor Programmstart
 
Ich bin gerade unter Linux unterwegs, aber später am Abend werde ich das mal unter Windows ausprobieren (irgendwie dubios, das :gruebel:).

Jens Hartmann 21. Jan 2009 17:14

Re: Lizenzabfrage vor Programmstart
 
Habe noch ein bißchen Rumgedocktert und muss feststellen, das es auch korrekt ist, das die Var Lizenznummer false ist.
Das Ereigniss OnShow oder OnAktivatet wird zwar nach On Create ausgeführt, aber die Application läuft erst weiter, wenn alle diese Erignisse ausgeführt sind. Daher wird natürlich auch erst der Wert TRUE nach OnShow gesetzt und somit ist meine Lizezabfrage immer FALSE..

Hm, :?: Habe jetzt mal nach anderen Ereignisse gesucht, allerdings ohne Erfolg.

Gruß

Jens

DeddyH 21. Jan 2009 17:21

Re: Lizenzabfrage vor Programmstart
 
Das sollte aber doch mit den Ereignissen wenig zu tun haben. Du erstellst das Formular und belegst die Property anschließend sofort, d.h. noch vor dem Anzeigen. Spaßhalber könnte man ja noch feststellen, ob es einen Unterschied zwischen
Delphi-Quellcode:
Application.CreateForm(TForm1, Form1);
und
Delphi-Quellcode:
Form1 := TForm1.Create(Application);
gibt. Aber wie gesagt, erst etwas später.

Jens Hartmann 21. Jan 2009 17:36

Re: Lizenzabfrage vor Programmstart
 
Ja, ich will dich auch nicht stören, hatte nur schon mal geantwortet. Habe es jetzt auch hinbekommen, glaube aber das ich einen Fehler in den Property´s habe. Das habe ich nämlich noch nicht so richtig verstanden.

Gelößt, habe ich das ganze jetzt mit Form.Visible.False und true
Und einer anschließenden FormHide abfrage!

siehe:

Delphi-Quellcode:
        if TFLizenz.ShowModal = mrOK then
          begin
            Application.CreateForm(TForm1, Form1);
            Form1.Lizenznummer := True;
            Form1.Visible := False;
            Form1.Visible := True;
            Application.Run;
          end
        else
Delphi-Quellcode:
procedure TForm1.FormHide(Sender: TObject);
begin
  if FLizenznummer = True then
    begin
      Label7.Caption := 'GEHT DOCH';
    end;
end;
So Funktioniert es jedenfalls, ich denke nur das das nicht ganz sauber ist.

Gruß

Jens

DeddyH 21. Jan 2009 18:36

Re: Lizenzabfrage vor Programmstart
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe das gerade mal versucht und es funktioniert. Du musst irgendetwas anders machen :gruebel:

[edit] Schnell zusammengeschluderte Demo im Anhang [/edit]

Jens Hartmann 22. Jan 2009 17:08

Re: Lizenzabfrage vor Programmstart
 
Sorry,

Also jetzt habe ich mir einen Wolf getippt und bekomme das ganze einfach nicht hin.
Ich habe natürlich gesehen, das Dein Projekt läuft.
Es ist bei mir defenitiv so, das ich den Wert ob Programm Lizenziert ist oder nicht erste nach Form Create geliefert bekomme und das Auswerten mit Form.Show oder so dann nicht klappt.

Delphi-Quellcode:
  private
    FLizenznummer      :Boolean;
    FSeriennummer      :Boolean;
    Procedure Bufferverarbeitung;
    procedure DatenverarbeitungMB24;
    procedure DatenverarbeitungMB48;
    procedure DatenverarbeitungMB100;
    procedure DatenverarbeitungMB256;
    procedure DatenverarbeitungUEZ2000;
    procedure DatenverarbeitungBMC1024;

    { Private declarations }
  public
    {Public declarations }
    Datum             :TDateTime;
    Pfad              :String;
    Registryeintrag   :TRegistry;
    property Lizenznummer: Boolean read FLizenznummer write FLizenznummer;
    property Seriennummer: Boolean read FSeriennummer write FSeriennummer;
  end;


Type
    Zeichen=Set of Char;
Ich denke das ich Irgendwas hier nicht richtig habe.

Ansonsten hier die Auswertung in der Application

Delphi-Quellcode:
    Application.Initialize;
    if Lizenzkey = 'Lizenznummer: Demoversion' then
       if Serienkey = 'Seriennummer: Demo-0001-2008' then
         begin
           TFLizenz := TTFLizenz.Create(Application);
             if TFLizenz.ShowModal = mrOK then
               begin
                 Application.CreateForm(TForm1, Form1);
                 Form1.Lizenznummer := True;
                 Form1.Seriennummer := True;
                 //Form1.Visible := False;
                 //Form1.Visible := True;
                 Application.Run;
               end;
         end;
Sorry wenn ich nerve, aber ich denke ich habe mich einfach nur gedanklich festgefahren

MFG

Jens

DeddyH 22. Jan 2009 17:13

Re: Lizenzabfrage vor Programmstart
 
Häng doch das Projekt mal als Zip an.

Jens Hartmann 22. Jan 2009 17:35

Re: Lizenzabfrage vor Programmstart
 
Hier bitte

DeddyH 22. Jan 2009 17:46

Re: Lizenzabfrage vor Programmstart
 
Zitat:

Delphi-Quellcode:
procedure TTFLizenz.Button1Click(Sender: TObject);
var
Lizenzkey : Boolean;
begin
Lizenzkey := false;

if Lizenzkey = true then
  ...

Kann ja niemals eintreffen.

Jens Hartmann 22. Jan 2009 17:50

Re: Lizenzabfrage vor Programmstart
 
Das ist mir klar.
Ich betätige momentan den BTmrOK manuell von Hand ohne die Abfrage.
Du musst nicht auf Software Lizenzieren klicken, sondern auf OK oben rechts.
Ich habe die Wahrheit Lizenz nur Simuliert OK=Lizenz DEMO=Keine Lizenz

MFG

Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz