Показать сообщение отдельно
  #6  
Старый 23.08.2012, 15:21
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от R_smile
Ок, я скопировала в папку проекта, а что это мне даст?
Если пытаюсь добавить, например, в текущий dpk, то выскакивает сообщение, что данный pas-файл уже есть в Search path.

Этот dpk, который использует исправленный pas-файл, компилила раз 100.

Не пойму... вроде все просто, а у меня не выходит...
Вобщем я разобрался. Больше времени потратил на то, чтобы найти, скачать и установить этот самый ExpressSpreadSheet.
Как я и говорил вы меняете совершенно не в том месте. Менять нужно в методе cxSSUtils.TcxSSUtils.FormatText. Вот вырезка:
Код:
class function TcxSSUtils.FormatText(const AValue: Double; AFormat: TxlsDataFormat;
  APrecision: Byte; var ATextColor: Word): string;
...
begin
  ARoundMode := SetRoundMode(0);
  APrecisionMode := SetPrecisionMode(2);

  if APrecision > 8 then APrecision := 8;
  case Integer(AFormat) of
      $00:
        Result := FloatToStrF(AValue, ffGeneral, 8, APrecision);
...
      $0F, $10, $11, $14:
        Result := 'ЭТО ФОРМАТЫ $0F, $10, $11, $14';//FormatDateTime(ADateFormat[AFormat - $0F], AValue);
      $12, $13:
        Result := AnsiUpperCase(FormatDateTime(ADateFormat[AFormat - $0F], AValue));
      $15:
        Result := 'ЭТО ФОРМАТ $15';//TimeToStr(AValue);
...
      $A5:
        Result := FormatDateTime(AnsiUpperCase('dd.mmmm.yy'), AValue);
    else
      Result := FloatToStr(AValue);
    end;
    if (AFormat in [$6, $8, $26, $28]) and (AValue < 0) then
      ATextColor := 2;

  SetPrecisionMode(APrecisionMode);
  SetRoundMode(ARoundMode);
end;
Ответить с цитированием