Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DynArray in procedure


Страницы:   1 2

Чародей ©   (2006-02-18 18:09:00) 

Как передать в процедуру в качестве параметра динамический массив и получить возможность изменять его размер. В следующем коде ошибка Incompotible types.
procedure TP(a:array of longint);
begin
SetLength(a,2);
end;
Почему?


Джо   (2006-02-18 22:10:00) [1]

Мое мнение таково, что, прежде чем выражать свои претензии к синтаксису языка, необходимо выучить хотя бы основы этого языка. А то смешно выглядит, ей Богу.


Джо   (2006-02-18 22:08:00) [2]

> [22] Чародей ©   (18.02.06 21:49)
> (хотя насчет тавтологии я останусь при своем мнении, можно
> было как-то иначе сделать различия :)

За чем дело стало? Напиши собственный компилятор без указанных недостатков.


Джо   (2006-02-18 22:08:00) [3]

> [20] Чародей ©   (18.02.06 21:14)
> Т.е. преимущества зключаются только в возможности использования
> констант. Но ведь это скорее исключение из правил чем правило,
> так как в реальных ситуациях данные в дольшинстве случаев
> получаются динамически.

Нет, опять неправильно понял. Синтаксис позволяет использовать НЕ только константы.


Чародей   (2006-02-18 21:49:00) [4]

Вобщем смысл понял, всем большое спасибо за помощь.
(хотя насчет тавтологии я останусь при своем мнении, можно было как-то иначе сделать различия :)


McSimm   (2006-02-18 21:37:00) [5]

Примеров много, например функция Format().


Чародей   (2006-02-18 21:14:00) [6]

Т.е. преимущества зключаются только в возможности использования констант. Но ведь это скорее исключение из правил чем правило, так как в реальных ситуациях данные в дольшинстве случаев получаются динамически.


Palladin   (2006-02-18 21:12:00) [7]

соответственно твое высказывание о таВтОлогии является абсолютно некорректным, в рамках форума, который все таки посвящен Delphi, и может направить юные умы в сторону неверного мировозрения применительно к тому же Delphi, о чем и сказал тебе McSimm :)


Palladin   (2006-02-18 21:08:00) [8]


> имеет хоть какие-то преимущества

ты не понял еще что ли, для тебя дело не в приемуществе, а в синтаксисе, если ты объявляешь как procedure a(b:array of integer) то b считается open array, а не dynamic array


Джо   (2006-02-18 21:02:00) [9]

> [16] Джо ©   (18.02.06 21:01)

Не то объявление скопипастил. Демонстрировал open array, т.е:
procedure TP(a:array of longint);


Джо   (2006-02-18 21:01:00) [10]

> [14] Чародей ©   (18.02.06 20:51)
> Покажите хоть один пример где использование открытого массива
> имеет хоть какие-то преимущества, перед использованием там
> же динамического массива


type
TLongArray = array of Longint;

procedure TP(a:TLongArray);
begin
...
end;

...
TP ([10,20,30]);


Palladin   (2006-02-18 20:51:00) [11]

тогда простой вопрос: в чем оно заключается? отличие?


Чародей   (2006-02-18 20:51:00) [12]


> Еще раз и по-русски, пожалуйста.

???
-------
Покажите хоть один пример где использование открытого массива имеет хоть какие-то преимущества, перед использованием там же динамического массива


Джо   (2006-02-18 20:44:00) [13]

> [12] Чародей ©   (18.02.06 20:36)
> Прочитал про open array всё что нашел в справке, и отличие
> от dynamic я вроде понял, но не нашел ни одного примера,
> где динамические массивы не могли бы быть использованы,
> по отношению к открытым.

Еще раз и по-русски, пожалуйста.


Чародей   (2006-02-18 20:36:00) [14]


> McSimm ©   (18.02.06 18:43) [11]

> тафталогией

таВтОлогия

Прочитал про open array всё что нашел в справке, и отличие от dynamic я вроде понял, но не нашел ни одного примера, где динамические массивы не могли бы быть использованы, по отношению к открытым.


McSimm   (2006-02-18 18:43:00) [15]

> [8] Чародей ©
Возможно кому-то и интересно узнать что вы считаете тафталогией и в чем вы не видите смысла. Но все же не стоит писать это здесь - тут люди в основном учатся, вдруг по неопытности подумают, что вы что-то умное написали.
:)


Palladin   (2006-02-18 18:42:00) [16]


> И смысла в таких конструкциях не вижу.

тогда почитай справку по open array, думаю после этого увидишь...


Джо   (2006-02-18 18:33:00) [17]

> [8] Чародей ©   (18.02.06 18:31)
>
> > type
> >  TLongArray = array of Longint;
>
> Я никогда не использовал такие вещи, потому что считаю,
> что это тавтология.

А компилятор считает иначе.

> И смысла в таких конструкциях не вижу.
Меняй работу.


Чародей   (2006-02-18 18:31:00) [18]


> type
>  TLongArray = array of Longint;

Я никогда не использовал такие вещи, потому что считаю, что это тавтология. И смысла в таких конструкциях не вижу.


Palladin   (2006-02-18 18:25:00) [19]


> Джо ©   (18.02.06 18:18) [4]

ну в принципе да...


> нда массив не катит нам нужен МАССИВ.

можно и такое

type
TLong ARRAY= ARRAYof Longint;

procedure TP(a:TLong ARRAY);
begin
SetLength(a,2);
end;


пойдет?


Джо   (2006-02-18 18:21:00) [20]

>Чародей ©  
> нда массив не катит нам нужен МАССИВ.


?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо