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

Вниз

Как привести TList<TField> к простому TList   Найти похожие ветки 

 
pasha_golub ©   (2012-09-04 20:16) [0]

Ребят, аврал. Эти Ымбыркадеры внезапно без объявления войны выпустили свою ХЕЗ.

Я тут быстро пытаюсь подтянуть свои писульки под новую среду. А они возьми да в некоторых местах вместо обычного TList начали использовать дженерики, например
   property Fields: TList<TField> read FFields;

Ну, а у меня, ясен пень, везде православное использование Fields как TList. Вопрос могу ли я в вызовах привести TList<TField> к TList без огребания в последствии.

Спасибо.


 
Dimka Maslov ©   (2012-09-04 20:38) [1]

Одно из основных правил у нас "со старыми проектами работа ВСЕГДА ведётся в том программном обеспечении, в котором они начаты".


 
Игорь Шевченко ©   (2012-09-04 20:58) [2]


> Вопрос могу ли я в вызовах привести TList<TField> к TList
> без огребания в последствии.


Нет


 
jack128_   (2012-09-04 22:26) [3]


> Ну, а у меня, ясен пень, везде православное использование
> Fields как TList

использование нетипизированных указателей - православным быть не может.


 
wl ©   (2012-09-04 23:00) [4]

for(int i=0; i<genericlist.Count(); ++i) { plainlist.Add(genericlist[i]); } ?
не помню как на делфи будет выглядеть, суть в том, чтобы тупо скопипастить из генерика в нетипизированный. Самый безопасный способ, (IMHO!)


 
Eraser ©   (2012-09-05 01:18) [5]


> Dimka Maslov ©   (04.09.12 20:38) [1]

дурацкое условие, без обид )


 
Германн ©   (2012-09-05 01:24) [6]


> Eraser ©   (05.09.12 01:18) [5]
>
>
> > Dimka Maslov ©   (04.09.12 20:38) [1]
>
> дурацкое условие, без обид )
>

А чем оно дурацкое?
Я уже не первый раз замечаю, что ты постоянно призываешь всех переходить на самую последнюю версию Д. А доводы за такое решение почти не приводишь.


 
Студент   (2012-09-05 05:46) [7]

ИМХО надо будет переписывать свои проекты под whatsnew новой версии.


 
pasha_golub ©   (2012-09-05 09:29) [8]


> Dimka Maslov ©   (04.09.12 20:38) [1]

Дим, я пишу набор компонентов. Они должны работать от Д5 и до новых веников. Если end user решение, то конечно же пишется и допиливается в чем-то проверенном.


> jack128_   (04.09.12 22:26) [3]

Жень, раньше в DB.pas таки сами Борланды\Кодегиры\Ымбаркадеры объявляли property TMasterDataLInk.Fields: TList;
Так шо мопед не мой (с)


> Игорь Шевченко ©   (04.09.12 20:58) [2]

Игорь, где-то это написано английским по белому? Я как-то упустил счастье поигратсья с дженериками и дружу с ними на расстоянии.


 
Давайте будем жрать!   (2012-09-05 10:31) [9]


> Игорь, где-то это написано английским по белому?
Паскалем по белому устроит? В System.Generics.Collections.pas.

Самое смешное, что F := TList(Fields)[I] или TList(Fields)[I] := F теоретически может корректно отработать (сейчас нет времени проверять), а вот TList(Fields).Add(F) гарантированно загнётся. %-)


 
pasha_golub ©   (2012-09-05 10:40) [10]


> Давайте будем жрать!   (05.09.12 10:31) [9]


> Паскалем по белому устроит? В System.Generics.Collections.
> pas.

Та я вас умоляю! Шо вы жгёте свой нерв? :) Спасиб.


 
Давайте будем жрать!   (2012-09-05 10:44) [11]


> Шо вы жгёте свой нерв?
Отнюдь нет :-)


 
Dimka Maslov ©   (2012-09-05 10:47) [12]


> Eraser ©   (05.09.12 01:18) [5]


А мы программированием и не занимаемся. Основная сфера нашей деятельности - строительное проектирование. И если из-за перехода на новое программное обеспечение возникнут трудноулавливаемые ошибки - цена их будет на несколько порядков выше. Что же касается программирования, то те внутренние программы, которые мы сами пишем и используем, ещё не разу не перекомпилировались без глюков при переносе старого кода на новые рельсы. При этом последствия скрытых ошибок опять же будут стоить очень дорого. К мостам сервис-паки каждую неделю выпускать не получится.


 
Dimka Maslov ©   (2012-09-05 10:50) [13]


> pasha_golub ©   (05.09.12 09:29) [8]


В этом случае можно посоветовать написать свой аналог TList без извратов и наследовать всё от него. Я знаю людей, которые с похожими целями полностью написали библиотеку классов за место MFC.


 
Давайте будем жрать!   (2012-09-05 10:53) [14]


> написать свой аналог TList без извратов
Ты не понял, написание своего аналога TList не поможет, если следовать твоему совету, то надо писать свой аналог DB или портировать соотевтсвующий модуль из старой версии.

Если хочется исправить по-быстрому, то маленькая функция, перегоняющая данные из TList<T> в TList, и в нужных местах обернуть вызов функции в $IFDEF.


 
Ega23 ©   (2012-09-05 11:22) [15]

Я сильно не вникал, ибо башка другим забита. Но

>  то маленькая функция, перегоняющая данные из TList<T> в
> TList, и в нужных местах обернуть вызов функции в $IFDEF.

мне кажется - оно.


 
pasha_golub ©   (2012-09-05 13:43) [16]

Нафигачил overload методов (благо всего три) и проблема решена. Спасибо, други!



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

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.08 c
1-1302458898
Polevi
2011-04-10 22:08
2013.03.22
Порядок контролов на ToolBar


2-1330552340
misha
2012-03-01 01:52
2013.03.22
Как спроектировать класс


2-1341705821
Den
2012-07-08 04:03
2013.03.22
MSHTM вопрос.


15-1341774208
Invoker
2012-07-08 23:03
2013.03.22
Отобразить все поля структуры.


9-1193300178
SergGG
2007-10-25 12:16
2013.03.22
Перевод координат в OpenGL





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