![]() |
![]() |
comanche |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 41 Пол: Мужской Реальное имя: Эдд Репутация: ![]() ![]() ![]() |
Имеются два модуля, в первом описан тип record и массив соответствующих записей. Во втором модуле- процедура, которая сортирует этот массив.
Чтобы использовать в первом модуле процедуру второго, нужно чтобы в процедуре имелся параметр-переменная массива записей из первого модуля. Верно? Так вот, как я могу описать тип этого параметра во втором модуле? Если модуль использует другой модуль, возникает ошибка: "Cyclic uses list in interface part of unit Students", а так, второй модуль не знает что в первом модуле есть такой тип записей. Сообщение отредактировано: comanche - 29.03.2006 14:02 -------------------- Released by Demons
|
![]() ![]() |
comanche |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 41 Пол: Мужской Реальное имя: Эдд Репутация: ![]() ![]() ![]() |
Код 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
|
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 7:18 |