| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > setlength проблема в процедуре |
| Автор: СЭНСЭЙ 18.3.2013, 21:35 | ||
Почем то в таком коде:
выдает ошибку - incompatible types; причем ругается именно на массив a в чем проблема? |
| Автор: Illusion Dolphin 18.3.2013, 21:46 | ||
Вот так будет работать:
В том виде, как есть, это вроде типа "Open array parameters" http://rvelthuis.de/articles/articles-openarr.html . |
| Автор: БелАмор 19.3.2013, 00:09 | ||
| Небольшое дополнение: Для большинства простых типов в модуле Types объявлены типы указателей и динамических массивов. Логичнее пользоваться ими, а не объявлять каждый раз свои типы. В частности, есть такой:
|
| Автор: bems 19.3.2013, 01:10 |
| можно же юзать TArray<T>, зачем что-то запоминать или объявлять? |
| Автор: northener 19.3.2013, 01:21 |
Да. Но не все используют версии Дельфи, в которые введены дженерики. |
| Автор: northener 19.3.2013, 01:46 |
| Ну и вдобавок. Насколько я вижу И-нет вовсе не кишит примерами использования дженериков в поздних версиях Дельфи. |
| Автор: bems 19.3.2013, 04:58 |
| Это результат падения популярности дельфи, к сожалению. Старые примеры со временем тиражируются, а новых появляется все меньше. Лично я после начального ковыряния в этой новой фиче определился с тем как ее использовать: я использую стандартные дженериковые типы и методы везде где это только возможно, и почти никогда не пишу своих дженериков. Что касается того что многие используют старые версии дельфи, ну так есть и парни предпочитающие спать с семидесятилетними старухами, но не брать же с них пример |
| Автор: СЭНСЭЙ 19.3.2013, 14:13 |
| короче мне принять как факт - что динамические массивы как параметры процедуры или функции нельзя передавать в виде описания типа а передавать уже переменные типа. Просто мне лично непонятно почему разработчики не заложили такую возможность, ибо нелогично получается. Вот так не делай, а делай немного через задницу. Добавлено через 7 минут и 21 секунду Спасибо всем. Незнаю как там насчет 70летней бабки, но если я пишу прогу на 7м делфи то она работает на win 95/98/2000/XP/Vista/2007 и будет ли работать программа на всех версиях операционок МС написанная на новых версиях делфи - не уверен. Не раз сталкивался что новые версии компиляторов неоправданно более требовательны к ресурсам. |
| Автор: northener 19.3.2013, 14:34 | ||
Потому что эта ниша уже давно была занята открытыми массивами. |
| Автор: bems 20.3.2013, 00:40 | ||
|
| Автор: northener 20.3.2013, 00:52 | ||
Будет. За очень редкими и ОЧЕНЬ маловероятными исключениями в виде Win95 в первоначальном варианте и ещё более ранних версий Windows. И ещё за гораздо менее редкими искслючениями на Vista и старше (если программа, по вине её автора, не учитывает особенности этих ОС). |
| Автор: bems 20.3.2013, 00:55 | ||
но это же "спать со старухой чтобы иметь возможность спать с другими старухами" |
| Автор: northener 20.3.2013, 01:12 | ||||
Возможно. Я не знаком с Д2009+.
Юмор понял и оценил. |
| Автор: DYUMON 20.3.2013, 06:43 |
| делал софтину на delphi xe 2 она без проблемм работает на win 98 |