Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Порядок в uses [D6, WinME, Win2k]


SergP. ©   (2005-07-13 16:41:00) 

В приведенном коде компилятор ругается на строку FindClose(z);

[Error] C412.dpr(56): Incompatible types: 'Cardinal' and 'TSearchRec'


program C412;

{$APPTYPE CONSOLE}

USES
  sysUtils,Windows,comobj,activex,word2000;

....
var
 z:TSearchRec;
...
 
FindClose(z);
...


но если поменять местами перечень модулей в uses на:

USES
  Windows,sysUtils,comobj,activex,word2000;

то компилируется нормально.

Что это за фигня такая?


Просто Джо   (2005-07-13 16:50:00) [1]


>  [4] SergP.   (13.07.05 16:49)
> Ну а зачем их одинаково назвали?

У тебя забыли спросить?

> Как указать из какого модуля брать требуемую функцию?

См. [3].


Digitman   (2005-07-13 16:50:00) [2]


> Как указать из какого модуля брать требуемую функцию?


так и укажи : Unitname.IdentifierName


SergP.   (2005-07-13 16:49:00) [3]


> Просто Джо ©   (13.07.05 16:43) [2]
> Windows.FindClose и SysUtils.FindClose - разные функции.


Ну а зачем их одинаково назвали?


> Digitman ©   (13.07.05 16:43) [1]
> а поменять - рука, конечно же, не поворачивается ..


Поворачивается... Но что будет если какая-нить другая функция тоже будет  в обоих модулях, но нужна будет из sysutils?

Как указать из какого модуля брать требуемую функцию?


Просто Джо   (2005-07-13 16:46:00) [4]

Если не указано явно имя юнита перед функцией, используется тот, который идет в uses последним.
Например,

uses Windows, SysUtils;
...
FindClose; <- подразумевается SysUtils.FindClose
---
uses SysUtils,Windows;
...
FindClose; <- подразумевается Windows.FindClose

Если порядок юнитов менять нежелательно, указывай спецификатор юнита, например
SysUtils.FindClose


Digitman   (2005-07-13 16:43:00) [5]

а поменять - рука, конечно же, не поворачивается ..


Просто Джо   (2005-07-13 16:43:00) [6]

Windows.FindClose и SysUtils.FindClose - разные функции.


Наверх

Титульная страница Поиск, карта сайта Написать письмо