Results 1 to 10 of 10

Thread: compiler directives voor D10.x

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    compiler directives voor D10.x

    Ik moet een bestand aanpassen, waardoor het programma weet welke versie e.d. moet gebruiken. Ik heb nu dit
    Delphi Code:
    1. {$IFDEF DELPHIXE10}
    2.   cPackageSuffix = '300';
    3.   cCompilerName = 'Delphi XE10';
    4. {$ENDIF}
    5.  
    6.  
    7. {$IFDEF DELPHIXE8}
    8.   cPackageSuffix = '290';
    9.   cCompilerName = 'Delphi XE8';
    10. {$ENDIF}
    Ik vraag mij af of het voor D10 wel klopt.
    De suffix voor D10 = 300, D10.1 = 310 en D10.2 = 320.
    Mijn kleine stemmetje verteld mij dat DELPHIXE10 niet klopt. Wat moet het wel zijn voor de drie updates.

    Is er iemand die dat mij kan vertellen?
    Delphi is great. Lazarus is more powerfull

  2. #2
    Dit misschien?
    Code:
    procedure TForm1.ButtonClick(Sender: TObject);
    var
      CV: string;
    begin
    {$IFDEF VER320}
      CV := 'Delphi 10.2 Tokyo';
    {$IFEND}
      ShowMessage(CV);
    end;

    Lijst met compiler versions

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Dat klopt en dat weet ik. Maar de ontwikkelaar, die het pakket heeft gemaakt, maakt gebruik van andere directives.
    Ik zou ook gebruik maken van VERXXX.
    Delphi is great. Lazarus is more powerfull

  4. #4
    Ik snap je probleem niet helemaal denk ik. Is het je onduidelijk wat de ontwikkelaar van het pakket bedoeld met DELPHIXE10?

  5. #5
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik ook niet. Daarom ga ik het ook navragen wat de doelstelling is
    Delphi is great. Lazarus is more powerfull

  6. #6
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Je kan ook compilerversion gebruiken, die staat je toe een versie en hoger te selecteren:

    Delphi Code:
    1. {$if compilerversion>=20}  //D2009
    2.    {$define Delphiunicode}
    3.    {$define has_pointermath}
    4. {$ifend}
    5. {$if compilerversion>=21} // D2010
    6.    {$define has_debugthread}  // naming of threads.
    7.    {$define has_bigrtti}
    8. {$ifend}
    9. {$if compilerversion>=22} // DXE
    10.    {$define has_keyboard} // on screen keyboard popup.
    11. {$ifend}
    12. {$if compilerversion>=23} // DXE2..DXE4 (5?)
    13.    {$define has_globalformatsettings}
    14.    {$define has_extendedTrect}
    15.    {$define generictlistbroken}
    16. {$ifend}
    17. {$if compilerversion>=30} // Seattle
    18.    {$define has_vectormath}
    19. {$ifend}

    Zie ook http://docwiki.embarcadero.com/RADSt...piler_Versions

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Het probleem zit in het pakket tiOPF. Die persoon heeft directives gebruikt die ik niet ken. Nu kan je ze zelf ook defineren.
    Delphi is great. Lazarus is more powerfull

  8. #8
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Welke file? Welke tiopf ? https://github.com/graemeg/tiopf/tree/tiopf3 ?

    Dit soort trucjes zijn een beetje Jedi achtig, maar totaal verouderd. (het is een mechanisme dat ook nog <D5 compatible is, die geen $IF kent)

  9. #9
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ja, die tiOPF
    Delphi is great. Lazarus is more powerfull

  10. #10
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Ik heb de file gevonden: https://github.com/graemeg/tiopf/blo.../tiDefines.inc

    dat is inderdaad old-skool jedi style. En dan moet je constant versies bijpluggen. Dat wordt gedaan vanwege pre D5, maar de meeste pakketten ondersteunen dat niet eens meer.

    Zoals je in mijn voorbeeld boven ziet, hoef je in de moderne stijl een property maar een keer te definiëren, en dan is ie voor alle hogere versies ook geschikt. Over het algemeen is het verstandig in veel hergebruikte code geen versies in de source te hebben, maar alleen een mapping naar properties

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •