Author Topic: Converting Delphi program - poblem compiling character.pas unit  (Read 5446 times)

RodneyK

  • New Member
  • *
  • Posts: 16
Converting Delphi program - poblem compiling character.pas unit
« on: December 27, 2010, 10:20:48 pm »
I'm trying to compile a Delphi dll as a 64 bit dll. I'm getting a compiler error as follows.

Character.pas has a type declaration

 TUnicodeCategory = (
    ucControl,
    ucFormat,
    ucUnassigned,
    ucPrivateUse,
    ucSurrogate,
    ucLowercaseLetter,
    ucModifierLetter,
    ucOtherLetter,
    ucTitlecaseLetter,
    ucUppercaseLetter,
    ucCombiningMark,
    ucEnclosingMark,
    ucNonSpacingMark,
    ucDecimalNumber,
    ucLetterNumber,
    ucOtherNumber,
    ucConnectPunctuation,
    ucDashPunctuation,
    ucClosePunctuation,
    ucFinalPunctuation,
    ucInitialPunctuation,
    ucOtherPunctuation,
    ucOpenPunctuation,
    ucCurrencySymbol,
    ucModifierSymbol,
    ucMathSymbol,
    ucOtherSymbol,
    ucLineSeparator,
    ucParagraphSeparator,
    ucSpaceSeparator
  );
                 

Subsequently a const declaration is made

const
  Latin1Categories: array[0..255] of TUnicodeCategory =
    ( { page 0 }
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      TUnicodeCategory.ucControl, TUnicodeCategory.ucControl,
      ...
      ...
      ...
      ...
      ...
      TUnicodeCategory.ucLowercaseLetter, TUnicodeCategory.ucLowercaseLetter,
      TUnicodeCategory.ucLowercaseLetter, TUnicodeCategory.ucLowercaseLetter,
      TUnicodeCategory.ucLowercaseLetter, TUnicodeCategory.ucLowercaseLetter
    );

When compiling an Illegal qualifier error is declared at character 24 and an illegal expression at character 33 in the first line containing 'TUnicodeCategory.ucControl,' I.e.,

                 |24      |33
TUnicodeCategory.ucControl,

Can any one tell me what is wrong?


 

Marc

  • Administrator
  • Hero Member
  • *
  • Posts: 2706
Re: Converting Delphi program - poblem compiling character.pas unit
« Reply #1 on: December 28, 2010, 11:36:47 am »
Have you tried without prefixing with TUnicodeCategory. ?
//--
{$I stdsig.inc}
//-I still can't read someones mind
//-Bugs reported here will be forgotten. Use the bug tracker

RodneyK

  • New Member
  • *
  • Posts: 16
Re: Converting Delphi program - poblem compiling character.pas unit
« Reply #2 on: December 28, 2010, 06:23:26 pm »
That worked. Thanks. On to the next compiler error. :-)

Leledumbo

  • Hero Member
  • *****
  • Posts: 8836
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Converting Delphi program - poblem compiling character.pas unit
« Reply #3 on: December 28, 2010, 11:05:30 pm »
AFAIK qualifying enum constants by its type name has been supported in svn for quite some time. Another feature that is not backported to 2.4.X I guess...

 

TinyPortal © 2005-2018