IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Взаимодействие модулей, Общие типы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 41
Пол: Мужской
Реальное имя: Эдд

Репутация: -  0  +


Имеются два модуля, в первом описан тип record и массив соответствующих записей. Во втором модуле- процедура, которая сортирует этот массив.

Чтобы использовать в первом модуле процедуру второго, нужно чтобы в процедуре имелся параметр-переменная массива записей из первого модуля. Верно?

Так вот, как я могу описать тип этого параметра во втором модуле? Если модуль использует другой модуль, возникает ошибка: "Cyclic uses list in interface part of unit Students", а так, второй модуль не знает что в первом модуле есть такой тип записей.

Сообщение отредактировано: comanche -


--------------------
Released by Demons
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 41
Пол: Мужской
Реальное имя: Эдд

Репутация: -  0  +


Код
Unit SortSear;

Interface

  Uses
    CRT, Students, Strings;

Type

  TSortSear = object
  private
    RP: ^TRecords;
  public
    Constructor Init(var RecordsPointer: ^TRecords);
     Destructor Done;
      Procedure SearchByName(var RecordsToSearch: TStudents);

  end;

Implementation

  Constructor TSortSear.Init;
    begin
      RP := RecordsPointer;
    end;

  Destructor TSortSear.Done;
    begin
    end;

  Procedure TSortSear.SearchByName;
    var
      Name: String[20];
      i: Byte;
      SearchResult: Boolean;
      SearchCounter: Byte;
    begin
      SearchResult := False;
      SearchCounter := 0;
      TextColor(Black);
      For i := 4 To 6 Do
        begin
          GotoXy(1, i);
          ClrEOL;
        end;
      GotoXy(1, 4);
      WriteLn('þ Search by Name/Surname:');
      Name := RP^.ReadName(WhereX+1, WhereY+1, 20);
      TextColor(Black);
      Write('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
      For i := 1 To RP^.GetSize Do
        if Pos(UpperCase(Name), UpperCase(RecordsToSearch[i].Name)) > 0 Then
           begin
             inc(SearchCounter);
             SearchResult := True;
      {#}    Write(SearchCounter:3, ')');              {#}
      {#}    Write(RecordsToSearch[i].Name:21);        {#}
      {#}    Write(RecordsToSearch[i].Group:11);       {#}
      {#}    Write(RecordsToSearch[i].AverMark:11:1);  {#}
      {#}    WriteLn(RecordsToSearch[i].Address:25);
           end;
        if NOT SearchResult Then
          begin
            TextColor(Red);
            WriteLn('þ No results found!');
            TextColor(Black);
            Write('þ Press any key to continue...');
          end;
    ReadKey;
    end;

End.


--------------------
Released by Demons
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
comanche   Взаимодействие модулей   29.03.2006 18:00
volvo   Не совсем... Только, если оба модуля подключают др…   29.03.2006 18:05
comanche   Заголовки в разделе int/imp не совпадают т.к. паск…   29.03.2006 18:19
volvo   Ну, так я же написал, что делать: Unit Students; I…   29.03.2006 18:23
comanche   Поместил один модуль в implementation другого и вт…   29.03.2006 18:36
volvo   Ну, это, наверное, у тебя спросить надо :) ... Я, …   29.03.2006 20:19
comanche   Но ведь в у SearchByName есть параметр-массив. То…   29.03.2006 20:48
comanche   Unit SortSear; Interface Uses CRT, Students, …   29.03.2006 21:04
volvo   Ты ПРОГРАММУ полностью ПРИАТТАЧИТЬ (в архиве) може…   29.03.2006 21:10
comanche   Учту :wink:   29.03.2006 21:14
volvo   Ну, начнем с того, что твой проект у меня в TMT 3.…   29.03.2006 21:29
comanche   Странно, мой нормально компайлит. Там есть описанн…   29.03.2006 21:34
volvo   Так... А вот теперь - вопрос на засыпку: ГДЕ у теб…   29.03.2006 22:35
comanche   Была описана в модуле mainops как глобальная, стро…   29.03.2006 22:41
volvo   Хы... Правда? А ты что, в GraphOps где-то MainOps …   29.03.2006 22:43
comanche   Допустим, я подключил MainOps в impementation Grap…   29.03.2006 22:47
volvo   Знаешь, что я тебе скажу? После 10-минутного перек…   29.03.2006 22:57
comanche   Надо будет попробовать написать заного. Всё равно…   29.03.2006 23:06
hardcase   Вот тебе совет: объявляй типы в отдельном модуле. …   30.03.2006 0:44


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.05.2024 8:37
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name