Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

Проблема с ф-ей 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.009 c
3-33472
Zelius
2003-08-19 20:02
2003.09.11
Как очистить BLOB поле в таблице?


14-33809
МАКСИК
2003-08-22 08:20
2003.09.11
Вопрос именно по API


14-33775
dimodim
2003-08-23 10:08
2003.09.11
Mysql i php


7-33830
Эдик Дятлов
2003-06-28 08:33
2003.09.11
Как уменьшить рабочую область Винды


1-33547
muzik
2003-08-28 18:54
2003.09.11
Fonts - Фонты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский