Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2010, 16:08   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Смущение При переносе функций в один файл, возникает несовместимость типов..

Всем привет.

Возникла проблема.
Решил все функции затолкать в один модуль.
Невыходит.. конфликтует почему-то.


Суть проблемы:
Сначала пишет
incompatible types Cardinal and TSearchRec

Дописываю в uses модуль System, в ответ ругань:
Identifier redeclared: System

Далее что сделать с WideString?

Есть 2 функции:
Код:
function FileGetSize(Filename: string): LongInt;
var
  F: file;
  OldFileAttr: Integer;
begin
  if FileExists(Filename) then
  begin
    OldFileAttr := FileGetAttr(Filename);
    FileSetAttr(Filename, OldFileAttr and (faReadOnly xor $FFFF));
    try
      AssignFile(F, Filename);
      Reset(F, 1);
      Result := FileSize(F); //incompatible types WideString and File
      CloseFile(F);
    finally
      FileSetAttr(Filename, OldFileAttr);
    end;
  end
  else
    Result := 0;
end;
и

Код:
function FileSize(fileName : WideString) : int64;
var
  sr : TSearchRec;
begin
  if FindFirst(fileName, faAnyFile, sr ) = 0 then
     result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
  else
     result := -1; //incompatible types Cardinal and TSearchRec
  FindClose(sr) ;
end;
Опять орёт благим матом..:
incompatible types WideString and File


помогите решить
Человек_Борща вне форума Ответить с цитированием
Старый 30.07.2010, 16:35   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

странные вы, у вас функция FileSize принимает WideString, а вы пихаете F: file; вот вам и ругается компилятор
BOBAH13 вне форума Ответить с цитированием
Старый 30.07.2010, 16:40   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

А вариант решения есть? string неподходит
Человек_Борща вне форума Ответить с цитированием
Старый 30.07.2010, 17:03   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Логика ваша работает ))) ну очень плохо. Измените название своей функции FileSize
BOBAH13 вне форума Ответить с цитированием
Старый 30.07.2010, 17:48   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Есть такая уже ф-ия в модуле System
function FileSize ( var FileHandle : File; ) : Integer;
как вас сказали смените название
SERG1980 вне форума Ответить с цитированием
Старый 30.07.2010, 20:08   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Я именно так и сделал=)
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При закрытии Word возникает ошибка sewer777 Microsoft Office Word 3 20.10.2011 13:19
Вроде бы аналогичная вложенной процедура не работает при переносе в дополнительный модуль! vedro-compota Общие вопросы Delphi 1 04.05.2010 17:12
Проблема при переносе кода. MasterK Общие вопросы Delphi 1 08.04.2010 18:05
Ошибка при переносе из 2006 в delphi 2009/2010 Яр|/||< (^_^) Общие вопросы Delphi 2 18.02.2010 12:01
Суммирование определенных ячеек при переносе Pilot Microsoft Office Excel 5 17.07.2008 12:46