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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2012, 21:51   #1
Котофей0
 
Регистрация: 09.02.2012
Сообщений: 5
По умолчанию Unit 'variants' recursively uses itself

Я новичок в делфи, но я немного разбираюсь в обьектак, в паскале нормально разбираюсь. В школе сделал на делфи сам решение квадратных уравнений. Решил скачать себе домой делфи, скачал 7Lite запустил пустую программу с пустой формой; открывается Variants.pas и пишется что "Unit 'variants' recursively uses itself"! Я скачал полную версию 7 - та же ошибка.
Я решил внимательно посмотреть на юнит и вот что увидел:
;

Код:
procedure VarCopyByRef(var Dest: TVarData; const Source: TVarData);
begin

  case Source.VType and not varByRef of

    varSmallint: Variant(Dest) := PSmallint(Source.VPointer)^;

    varInteger:  Variant(Dest) := PInteger(Source.VPointer)^;

    varSingle:   Variant(Dest) := PSingle(Source.VPointer)^;

    varDouble:   Variant(Dest) := PDouble(Source.VPointer)^;

    varCurrency: Variant(Dest) := PCurrency(Source.VPointer)^;

    varDate:     Variant(Dest) := PDate(Source.VPointer)^;

    varOleStr:   Variant(Dest) := VarCopyNoIndOleStr(Source);

    varBoolean:  Variant(Dest) := PWordBool(Source.VPointer)^;

    varShortInt: Variant(Dest) := PShortInt(Source.VPointer)^;

    varByte:     Variant(Dest) := PByte(Source.VPointer)^;

    varWord:     Variant(Dest) := PWord(Source.VPointer)^;

    varLongWord: Variant(Dest) := PLongWord(Source.VPointer)^;

    varInt64:    Variant(Dest) := PInt64(Source.VPointer)^;



    varVariant:  _VarCopyNoInd(Dest, PVarData(Source.VPointer)^); //  Здесь используется _VarCopyNoInd


    varDispatch,

    varUnknown:  VarCopyNoIndViaOS(Dest, Source);

  else

    if Source.VType and varArray <> 0 then

      VarArrayCopyForEach(Dest, Source, VarCopyNoIndCopyProc)

    else

      VarCopyNoIndDeep(Dest, Source);

  end

end;



procedure _VarCopyNoInd(var Dest: TVarData; const Source: TVarData);

begin

  if Source.VType and varByRef = 0 then

    _VarCopy(Dest, Source)

  else

    VarCopyByRef(Dest, Source);  //Здесь исползуется VarCopyByRef
end;
Эти процедуры используют друг друга!
Что мне делать?

Последний раз редактировалось Котофей0; 09.02.2012 в 22:23.
Котофей0 вне форума Ответить с цитированием
Старый 09.02.2012, 21:55   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

проблема в секции uses вообще то.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.02.2012, 21:58   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Lite это не неполная (там наоборот больше компонентов, установлены CnPack и GeExpert и т.п.), а сборка.

Кстати, используйте тег [CODE] (значок # ) для сохранения форматирования и подсветки кода в сообщении. Кнопка Правка снизу справа.

А гугление что дало? Вроде довольно много выдает по этой теме, нaпpимер:
http://stackoverflow.com/questions/5...-but-it-doesnt
http://www.sql.ru/Forum/actualthread...tid=624490&hl=
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.02.2012, 22:18   #4
Котофей0
 
Регистрация: 09.02.2012
Сообщений: 5
По умолчанию

Простите я первый раз пишу тут)
На самом деле уже два дня гуглю, но все ответы либо на английском с использованием неизвестных мне терминов, либо на русском но с использованием сленга (ничего не понимаю(();
Ни у кого такой проблемы не было? Ато может посоветует хоть кто)
P. S. Все что смог в гугле вычитать то сделал, но безрезультатно.
Котофей0 вне форума Ответить с цитированием
Старый 09.02.2012, 22:19   #5
Котофей0
 
Регистрация: 09.02.2012
Сообщений: 5
По умолчанию

Я как раз смотрел эти ссылки недавно, ничего не дало.
Котофей0 вне форума Ответить с цитированием
Старый 09.02.2012, 22:39   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Эти процедуры используют друг друга!
Ну используют и используют. У меня такое же содержимое этих процедур.

Ошибка вроде бы на uses намекает, может там в uses есть он сам? У меня в нем только Types и SysUtils.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.02.2012, 07:25   #7
Котофей0
 
Регистрация: 09.02.2012
Сообщений: 5
По умолчанию

У меня тоже
Нене ошибка именно на этих процедурах выдается
Котофей0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TP Проблема с Unit-ом ronayt Паскаль, Turbo Pascal, PascalABC.NET 8 10.02.2012 07:28
unit mares Помощь студентам 7 23.05.2010 21:46
Unit expected Net* Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2008 21:01
Windows, Messages,SysUtils,Variants,... Рустам Общие вопросы Delphi 5 04.02.2008 08:34