Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

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)

Jens Hartmann 20. Jan 2009 19:57

Re: Lizenzabfrage vor Programmstart
 
Nein, leider nicht. Habe ich Probiert.


Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  if Lizenznummer = true then
    begin
      Label7.Caption := 'TRUE';
    end
    else
    Label7.Caption := 'FALSE'
end;
Es wird immer FALSE zurückgegeben obwohl ich Lizenznummer eindeutig mit mrOK bestätige.
Es sieht so aus als wird der Wert nicht zugewiesen.

DeddyH 20. Jan 2009 20:00

Re: Lizenzabfrage vor Programmstart
 
Wo steht denn Lizenznummer? Ist das eine Property von Form1?

Jens Hartmann 20. Jan 2009 20:03

Re: Lizenzabfrage vor Programmstart
 
Lizenznummer ist in Form1 unter public eingefügt.

Delphi-Quellcode:
  public
    {Public declarations }
    Datum             :TDateTime;
    Pfad              :String;
    Lizenznummer      :Boolean;
    Seriennummer      :Boolean;
    Registryeintrag   :TRegistry;

DeddyH 20. Jan 2009 20:05

Re: Lizenzabfrage vor Programmstart
 
Sehr merkwürdig. Auch wenn das nicht ganz "sauber" ist, sollte es trotzdem funktionieren. Bist Du ganz sicher, dass ModalResult in der Projektdatei auch richtig ausgewertet wird? Setz doch mal dort einen Breakpoint und schau, wo er hinspringt.

Jens Hartmann 20. Jan 2009 20:16

Re: Lizenzabfrage vor Programmstart
 
Die Auswertung müsste aufjedenfall OK sein, da ich einen Button mit mrOK momentan Manuell ohne Lizenzabfrage betätige.

Delphi-Quellcode:
procedure TTFLizenz.Button1Click(Sender: TObject);
var
Lizenzkey : Boolean;
begin
Lizenzkey := false;
if Lizenzkey = true then
  begin
    BTmrOK.Click;
  end
  else
  ShowMessage('Die Seriennummer oder Lizenznummer stimmen nicht mit der Lizenzdatei überein,'+#13#10+
  'oder es ist keine gültige Lizenzdatei vorhanden!'+#13#10+
  'Nutzen Sie Print/Save als DEMOVERSION oder Versuchen Sie es erneut');
  TFLizenz.Close;
end;
Den Button BTmrOK mit dem ModalResult mrOK betätige ich nicht über die Funktion oben sondern Manuell.

Jens Hartmann 20. Jan 2009 21:48

Re: Lizenzabfrage vor Programmstart
 
Also einfach nochmal zur Info,

Habe jetzt ein paar Breakpoint´s mehr gesetzt und dabei festgestellt, das der Wert TRUE zwar gesetzt wird. Zumindest läuft die Routine durch.

Delphi-Quellcode:
begin
  Application.CreateForm(TForm1, Form1);
  Form1.Lizenznummer := True;
  Application.Run;
end
Aber beim Form OnShow ist der Wert TRUE nich in der Var Lizenznummer

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  if Lizenznummer = true then
    begin
      Label7.Caption := 'TRUE';
    end;
end;
Hier wird die if-Abfrage einfach Übersprungen

:gruebel:

Chemiker 20. Jan 2009 23:05

Re: Lizenzabfrage vor Programmstart
 
Hallo Jens Hartmann,

setze doch mal einen Breakpoint auf die if-Zeile und überprüfe den Inhalt von Lizenznummer.

Vielleicht noch ein Hinweis:

Du kannst bei der Abfrage auch direkt die Lizenznummer abfragen.

Delphi-Quellcode:
if Lizenznummer then
begin
  Label7.Caption := 'TRUE';
end;
Bis bald Chemiker

Jens Hartmann 21. Jan 2009 06:52

Re: Lizenzabfrage vor Programmstart
 
Der Inhalt von Lizenznummer ist "FALSE"

Ich versteh nur nicht warum.

Mit Lizenznummer ohne Form hatte ich auch probiert. Das war nur noch weil ich dachte vieleicht hilft das ja.

MFG

Jens

DeddyH 21. Jan 2009 11:12

Re: Lizenzabfrage vor Programmstart
 
Mach doch in Form1 mal anständige Properties draus statt Variablen (obwohl ich nicht glaube, dass es daran liegt).
Delphi-Quellcode:
private
    ...
    FLizenznummer      :Boolean;
    FSeriennummer      :Boolean;
    ...
public
    {Public declarations }
    ...
    property Lizenznummer: Boolean read FLizenznummer write FLizenznummer;
    property Seriennummer: Boolean read FSeriennummer write FSeriennummer;
    ...

Jens Hartmann 21. Jan 2009 16:38

Re: Lizenzabfrage vor Programmstart
 
Ja, das war leider nichts, wie du schon gesagt hast.
Ich habe jetzt nochmal einen Braekpoint in der Lizenzabfrage von Form1 gesetzt. Der wert ist eindeutig FALSE

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  if Lizenznummer = true then
    begin
      Label7.Caption := 'TRUE';
    end;
end;
Setzt ich aber in der Application meine Caption von Label7 direkt auf 'HALLO WELT' (TestLabel) macht Delphi das. :gruebel:

Delphi-Quellcode:
        if TFLizenz.ShowModal = mrOK then
          begin
            Application.CreateForm(TForm1, Form1);
            Form1.Lizenznummer := True;                 //Variable auf True
            Form1.Label7.Caption := 'HALLO WELT';       //Testtext in Label schreiben
            Application.Run;
          end
Ist doch seltsam oder.
Ich setzt auch in der Gesamten Form1 nirgendwo Lizenznummer anders.

:gruebel:

MFG

Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Seite 4 von 6   « Erste     234 56      

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