Announcement

Collapse
No announcement yet.

Verschiedene Versionen?? hmm?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verschiedene Versionen?? hmm?

    Ich soll eine Programm schreiben das in 3 Versionen zum Kaufen gibt, eine Version (Beispiel Delphi 5.0) ist die Komplette Version (ENTERPRISE) und dann 2 weiter Versionen bei denen einzelne Menüpunkte fehlen oder Auswertungen nicht vorhanden sind.

    Wer kann mir tipps geben???
    SABINE :-)

  • #2
    Eine einfache Möglichkeit wäre über eine globale Variable zu gehen.

    Und je nach Definition dieser Variable (Werte 0=Standard, 1=Professional, 2=Enterprise) werden Menüs/Toolbars/... sichtbar gemacht oder versteckt

    Comment


    • #3
      Hallo,

      in Delphi gibt es die Möglichkeit der bedingten Compilierung. Hier ein Beispiel, das man in einer globalen Unit unterbringen kann.

      <pre>
      {$DEFINE VOLLVERSION} // VOLLVERSION ; DEMOVERSION

      {$IFDEF VOLLVERSION}
      const Lizenztext : string = 'Mein Programm';
      const DemoVersion : Boolean = false;
      {$ELSE}
      const Lizenztext : string = 'Mein Programm &lt; Demo-Version &gt;';
      const DemoVersion : Boolean = true;
      {$ENDIF}</pre>

      Wenn nun z.B. die Konstante DemoVersion = true ist, dann kann man im ganzen Programm z.B. Menüpunkte ausblenden oder anderweitig reagieren.

      Viel Erfolg

      Comment


      • #4
        In den meisten Fällen dürfte die Lösung über Compiler-Direktiven (einfach in der Delphi-Hilfe im Index suchen) am elegantesten. Es wird immer nur der Quellcode in die Exe kompiliert, der auch wirklich für die jeweilige Version benötigt wird. So wird das Programm nicht unnötig mit nutzlosen Funktionen aufgebläht, und auch Cracker können nicht durch irgendwelchen fiesen Tricks die Standart-Version in die subba-teure Enterprise-Version umwandeln....
        <p>
        Ein Bsp. aus der Beta-Jcl:<p>
        <pre>
        {$IFDEF SUPPORTS_OVERLOAD}
        function OrdToBinary(const Value: Byte): string; overload;
        function OrdToBinary(const Value: Word): string; overload;
        function OrdToBinary(const Value: Integer): string; overload;
        function OrdToBinary(const Value: Cardinal): string; overload;
        function OrdToBinary(const Value: Int64): string; overload;
        {$ELSE}
        function OrdToBinaryByte(const Value: Byte): string;
        function OrdToBinaryWord(const Value: Word): string;
        function OrdToBinaryInteger(const Value: Integer): string;
        function OrdToBinaryCardinal(const Value: Cardinal): string;
        function OrdToBinaryIny64(const Value: Int64): string;
        {$ENDIF}
        </pre>
        Je nach gesetzen SUPPORTS_OVERLOAD wird ein anderer Quellcode kompeliert.<p>
        Gruß,<br>
        Bernhar

        Comment


        • #5
          Hast du für mich auch ein Beispiel?? Die Hilfe gibt da nicht viel her!!

          Da steht zwar wie ich die Versionen definiert sind, aber weder aufruf noch sonst was!!!

          Oder kannst du mir Tipps geben wo ich Hilfe bekomme? Bücher oder so,..

          Aber bitte nicht den (englischen) Support/Hilfe von Borland.

          Die hilft mir nicht weiter,..

          Comment

          Working...
          X