![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Liandry |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.4.2003 Репутация: нет Всего: нет |
Привет Всем, прошу помогите!
значит я создаю тип вот такой: Treport = record FCount: array [1..6] of word; TCount: array [1..6] of word; EXDO : array [1..6] of boolean; Marks : array [1..6] of byte; end; ... //затем объявляю процедуру... public { Public declarations } Procedure GenerateReport(var report: array of TReport); end; implementation uses ...; {$R *.DFM} //описываю её Procedure Tform1.GenerateReport(var report: array of TReport); begin //procedure's body SetLength(report,N); //error HERE // etc. end; ---------------------------------------- Во второй форме в обработчике создаю переменную типа TReport и обращаюсь к процедуре в 1 форме; var report : array of TReport; begin Form1.GenerateReport(report); end; Я так понимаю, я объявил открытый массив в подпрограмме, который "принимает" массив любой длины, НО(!) пучему динамический он "принимает" но не хочет менять его длину... Можно ли как-нибудь это дело реализовать? Заранее спасибо! |
|||
|
||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
А ты не мог бы сказать тип ошибки (что именно он выдает)?
-------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Помоему фукция SetLength предназначена для динамичесих массивов, а не для открытых. А в своей функции ты определяешь открытый массив, передаваемый по ссылке.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Liandry |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.4.2003 Репутация: нет Всего: нет |
2Morpheus
[Error] Incompatible types 2<Spawn> Как мне передать в процедуру динамический массив... (Это главный вопрос) Да я определяю открытай массив, и сую туда динамический, который должен в этой процедуре сформироваться! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Динамичексий массив можно передать, например так:
Type TMyMass:array of Integer; var Form1: TForm1; Mas:TMyMass; implementation procedure MyMassProc(var Mas:TMyMass); begin //Твой код end; -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
array of Integer например
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Liandry |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.4.2003 Репутация: нет Всего: нет |
Хорошо попробую! Но по мойму такая конструкция передачи массива будет работать только в одном юните. Если не прудно покажи как это будет выглядеть в public declaration, как в моем примере (помойму нельзя так сделать
Это сообщение отредактировал(а) Liandry - 14.5.2003, 19:30 |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Procedure Example(Mas: array of Integer);
Begin // Здесь что-то делаешь с Mas End; И два варианта употребления: Var Arr: array [1..10] of Integer; ... Example(Arr); или Var Arr: array of Integer; ... SetLength(Arr,...); Example(Arr); -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |