2017-01-27 45 views
1

我只是想將Delphi 2007應用程序轉換爲Delphi 10.在2007版本的軟件中,我使用了一個常量的TFormatSettings。由於TFormatSettings類型在兩者之間發生了變化,我遇到了以下問題: 如何定義TFormatSettings常量?我試過如下:如何定義TFormatSettings常量(德爾福10)

XML_FormatSettings : TFormatSettings = (
    CurrencyString:   '€'; 
    CurrencyFormat:   3; 
    CurrencyDecimals:   2; 
    DateSeparator:    '-'; 
    TimeSeparator:    ':'; 
    ListSeparator:    ';'; 
    ShortDateFormat:   'yyyy-MM-dd'; 
    LongDateFormat:   'dddd, d. MMMM yyyy'; 
    TimeAMString:    ''; 
    TimePMString:    ''; 
    ShortTimeFormat:   'hh:nn:ss'; 
    LongTimeFormat:   'hh:nn:ss'; 
    ShortMonthNames:   ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); 
    LongMonthNames:   ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'Augut', 'September', 'October', 'November', 'December'); 
    ShortDayNames:    ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); 
    LongDayNames:    ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); 
    EraInfo:     (
     EraName: '';    // <= Error here 
     EraOffset: 0; 
     EraStart: 0; 
     EraEnd: 0;); 
    ThousandSeparator:   ','; 
    DecimalSeparator:   '.'; 
    TwoDigitYearCenturyWindow: 0; 
    NegCurrFormat:    8; 
    NormalizedLocaleName:  '';); 

這提供了以下錯誤:未聲明的標識符:「EraName」

我嘗試了其他幾種方法,但沒有找到一個解決方案。有沒有可能定義一個TFormatSettings的常量?在聲明常量時,如何處理記錄類型中定義和使用的記錄類型?

+1

你可以預先定義一個特定的區域,比如'FS:= TFormatSettings.Create('en-US');'適合(或者改變需要的)。 –

+0

謝謝,但我想定義一個常量而不是變量。這將是我最後的救援(種類)。 –

+1

我認爲你不能把它定義爲一個常量。 'EraInfo'被聲明爲一個記錄的動態數組,我不知道有什麼方法可以在一個常量記錄中聲明它。 –

回答

3

EraInfo是一個動態記錄數組,並且不可能定義一個常量動態記錄數組。 如果不需要EraInfo,只是省略聲明:

XML_FormatSettings : TFormatSettings = (
    CurrencyString:   '€'; 
    CurrencyFormat:   3; 
    CurrencyDecimals:   2; 
    DateSeparator:    '-'; 
    TimeSeparator:    ':'; 
    ListSeparator:    ';'; 
    ShortDateFormat:   'yyyy-MM-dd'; 
    LongDateFormat:   'dddd, d. MMMM yyyy'; 
    TimeAMString:    ''; 
    TimePMString:    ''; 
    ShortTimeFormat:   'hh:nn:ss'; 
    LongTimeFormat:   'hh:nn:ss'; 
    ShortMonthNames:   ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); 
    LongMonthNames:   ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'Augut', 'September', 'October', 'November', 'December'); 
    ShortDayNames:    ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); 
    LongDayNames:    ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); 
    ThousandSeparator:   ','; 
    DecimalSeparator:   '.'; 
    TwoDigitYearCenturyWindow: 0; 
    NegCurrFormat:    8; 
    NormalizedLocaleName:  ''); 

忽略的字段將是零或零,根據其類型。