Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

Проблема с ф-ей SetLength   Найти похожие ветки 

 
Rel_   (2003-09-01 08:45) [0]

Мастера, давно уже столкнулся с проблемой. Как можно разрешить след-юю ситуацию.

Передаю в функцию массив
procedure fill1(var mas : array of TRepRec);
begin
пытаюсь изменить его длину:

SetLength(mas, 20) ;
!!! Ошибка: несовместимые типы.

end;

Если массив объявлен глобально и не передаётся в функцию в качестве параметра (или ссылки), то всё отлично.

Подскажите, что за беда.


 
MBo   (2003-09-01 08:49) [1]

беда в том, то книжки по языку не прочитаны.
В твоем примере передается не динамический, а открытый массив.
F1 по тому и другому.


 
Song   (2003-09-01 08:50) [2]

Компилятор должен знать что за структуру ты передаёшь в процедуру. Поэтому этот параметр должен быть типизирован.


 
Юрий Зотов   (2003-09-01 09:00) [3]

> Rel_ (01.09.03 08:45)

type
TMas = array of TRepRec

procedure fill1(var Mas: TMas);


 
Rel_   (2003-09-01 09:03) [4]

to MBo ©

Книжки конечно же читал, но есть ещё такое понятие как опыт. Могут же у меня оставаться невыясненные моменты.

Если Вы MBo © при чтении книг не упустили сей важный вопрос, то подскажите разницу между динамическим и открытым массивом (просто слово открытый мне не совсем ясно (может быть объявленный глобально))???

to Song ©
Что значит типизирован. Тип TRepRec у меня объявлен. Или для функции SetLength массив обязательно должен быть стандартного типа (например Integer)??? Я повторяю, что если тот де массив объявить глобально (например в разделе private класса), то проблема снимается.


 
Song   (2003-09-01 09:05) [5]

Типизирован это значит приведён к стандатному типу или описан в Type.


 
Rel_   (2003-09-01 09:05) [6]

to Юрий Зотов ©
!!! Огромное спасибо. Теперь всё ясно.


 
Song   (2003-09-01 09:06) [7]

>> Тип TRepRec у меня объявлен. Или для функции SetLength массив обязательно должен быть стандартного типа (например Integer)???

Интересно как массив может быть типом Integer ?


 
Rel_   (2003-09-01 09:51) [8]

Song © Если интересно, то массив элементов типа Integer. Т.е. каждый из элементов имеет тип Integer (32 бита).


 
Song   (2003-09-01 09:55) [9]

Не вывёртывайся. Ты так имел ввиду:

Var a: Integer;

a[1]:=1


 
Rel_   (2003-09-01 10:47) [10]

to Song ©

Шутник!!! Тут уж хоть вывёртывайся, хоть не вывёртывайся, а слово не воробей.

Ну теперь я уж точно никогда не буду создавать массив типа Integer !!!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-33465
Behemoth
2003-08-21 08:52
2003.09.11
Как вывести правильное значение среднего по целочисленному полю.


3-33505
Olivka
2003-08-18 22:36
2003.09.11
Опять кракозябры мучают, теперь с АДО, драйвер Jet


4-33838
Jungle
2003-07-13 01:12
2003.09.11
Как заблокировать доступ к диску (логическому или физическому)


14-33725
Palladin
2003-08-25 13:29
2003.09.11
UML


1-33636
Sanyok
2003-08-31 13:24
2003.09.11
Можно ли сделать так, чтобы на панели задач были ссылки на 2 форм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский