|
|
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Собственно, решил попробовать их на вкус. Сделал, как в этом примере сам код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. результат {1} Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. результат{2} Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ну и в случае {3}, если не комментить код после finally, то получаю Код: pascal 1. 2. 3. 4. 5. 6. ЧЯДНТ? Я неправильно понимаю их область применения? зы. кстати, компилятор выдал кучу хинтов типа Код: pascal 1. 2. 3. ================= Док. Win7 Ultim x64/Deb 8.7 i386: FB 3.0.2.32703, диалект 3, SS(win)/SC(Deb), Lazarus 1.9(r.55042); FPC 3.1.1 (r.36290), IBX by -Rik-; IBE 2017.4.19.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 17:53:50 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док ЧЯДНТ? Cоздаёшь единственный объект, а потом удивляешься результату :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:01:28 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyДок ЧЯДНТ? Cоздаёшь единственный объект, а потом удивляешься результату :) понятно. А что с разрушением? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:06:19 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокА что с разрушением? А чего ты ожидаешь убивая объект несколько раз? (я полагаю TFPGObjectList по дефолту является владельцем хранимых объектов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:10:02 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, поправил код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. теперь с ожидаемым результатом Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но даже теперь нет понятно, почему уничтожение и объекта, и листа все равно приводит к выше указанной ошибке. Но если их уничтожать по одному за один раз - все корректно? Я хочу уяснить на будущее, если я их не буду уничтожать, то память потечет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:26:26 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокНо даже теперь нет понятно, почему уничтожение и объекта, и листа все равно приводит к выше указанной ошибке. Я же тебе уже сказал, что твой лист, скорее всего, сам удаляет хранимые объекты. Параметры конструктора-то посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:35:53 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Если ты в этих классах хранишь всего лишь свойства, как информацию о чём либо - то. То лучше использовать структуры, так как их не надо ручками создавать и удалять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:40:09 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док, обычно у таких списков есть свойство "владелец объектов". Оно иногда по умолчанию включено, иногда - выключено, смотри исходники. Это значит, что все, что ты положил в список, будет удалено (вызовом деструктора вложенного объекта) при разрушении списка. Например, ты кнопки на форму кидаешь. Потом, при разрушении формы, кнопки тоже разрушаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:43:06 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
https://www.freepascal.org/docs-html/rtl/fgl/tfpgobjectlist.html property FreeObjects: Boolean; [rw] Does the list own the objects or not? Если у тебя list.FreeObjects = True, то, как уже сказали выше, он сам вызывает Free у хранимых объектов при уничтожении списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 18:53:18 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
alekcvpЕсли у тебя list.FreeObjects = True Kazantsev AlexeyПараметры конструктора-то посмотри. Ага, теперь понятно Няшиклучше использовать структуры Че-та я их не могу понять куда и и как в один из 4 классов (TFPGList, TFPGObjectList, TFPGInterfacedObjectList, TFPGMap), описанных в fgl, их прикрутить. Если создавать свой тип дженерика, как описано в мануале Код: pascal 1. 2. 3. 4. 5. 6. то придется вручную описывать остальные свойства и процедуры. А хотелось бы готовых :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 20:32:03 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док, вот с "созданием" записей: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Это я с Delphi Tokyo играюсь... какой крутецкий отладчик, все элементы списка видно: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 21:07:30 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
чччД, Тебе не кажется что, создание указателя - это лишние ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 21:48:21 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Кстати, TList<> сам выделяет (и освобождает) память для данных типа <T>, и в данном случае fl.Add(fpR^) - всего лишь копирование значений из временной переменной. Стало быть, в цикле должен быть Dispose этой временной переменной: Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 22:02:13 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
НяшикчччД, Тебе не кажется что, создание указателя - это лишние ? Так Док вроде как раз страдает по этому поводу - куда непонятное заранее количество деть, массив какой-то завёл. А так - да, не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 22:10:51 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
чччДЭто я с Delphi Tokyo играюсь... Вот теперь то же самое, только на Лазаре. "Я посмотрел бы на него, когда б было минус 30..." © :) чччДТак Док вроде как раз страдает по этому поводу Док не страдает, Док изучает, прежде чем сказать, что дженерики на Лазаре гавно до уровня Дельфей еще надо пилить и пилить. Есть сторонняя библиотека , но и там типа TList<TArray> тоже нет. Так что, для моих целей ближе всего все-таки использовать свой класс с полями нужного типа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 23:17:45 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Докчто дженерики на Лазаре гавно до уровня Дельфей еще надо пилить и пилить Всё ровно наоборот. Муа-ха-ха. ДокЕсть сторонняя библиотека , но и там типа TList<TArray> тоже нет. Ты же на транке вроде? В транк давно уже спарту интегрировали, подключай Generics.Collections... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2017, 23:46:28 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док, ну ты скажи, где лазарус взять, чтобы такой, как у тебя и без гемора при установке - я и попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 00:01:52 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
чччДну ты скажи, где лазарус взять легко. Можешь попробовать собрать так . Kazantsev Alexeyподключай Generics.Collections.. и ты молчал? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 00:13:08 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокМожешь попробовать собрать так . Зачем такие сложности... Ходишь сюда , качаешь утиль под свою ОС, устанавливаешь нажатием одной кнопки. Доки ты молчал? :) А ты не те вопросы задаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 00:20:28 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Скачал лазарус отсюда: http://www.lazarus-ide.org/ - нет там файла Generics.Collection ДокчччДну ты скажи, где лазарус взять легко. Можешь попробовать собрать так . ... Да ну, страшно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 00:44:42 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
чччДСкачал лазарус отсюда: http://www.lazarus-ide.org/ - нет там файла Generics.Collection ССЗБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 00:49:04 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyА ты не те вопросы задаешь Мог бы и подсказать, тем более, что нас, лазаристов, мало :) Вроде разобрался Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. результат Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Еще раз хотел уточнить, FreeAndNil нужно писать или об этом TList<T> позаботится? Будет ли криминалом, если я буду по привычке уничтожать то, что создал своими руками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 01:37:57 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyчччДСкачал лазарус отсюда: http://www.lazarus-ide.org/ - нет там файла Generics.Collection ССЗБ Вот оно мне так надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 01:38:38 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док... Еще раз хотел уточнить, FreeAndNil нужно писать или об этом TList<T> позаботится? Будет ли криминалом, если я буду по привычке уничтожать то, что создал своими руками? Если у тебя в список TList<> залиты экземпляры классов - нужно уничтожать руками. Если "простые типы" (целые, строки, записи из целых и строк...) - не нужно уничтожать. Если в записи есть поля "классового" типа ("объекты") - нужно пройтись по всем элементам и уничтожить такие объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 01:42:59 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокFreeAndNil нужно писать или об этом TList<T> позаботится? Конкретно TList<T> сам ничего не уничтожает. TObjectList<T> в зависимости от опции владения объектами. ДокБудет ли криминалом, если я буду по привычке уничтожать то, что создал своими руками? Это ортогонально дженерикам. Но вообще, либо уничтожаешь сам, либо поручаешь кому-то, как в том случае со списком-контейнером владеющим объектами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 01:52:21 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
чччДВот оно мне так надо тебе 3 батника запустить поочередно гораздо сложнее, чем кликать 10 раз по кнопке "Next" в инсталляторе дельфей? Тогда понятно, почему ты так долго на D2007 сидел, а теперь пузыри пускаешь, увидев отладчик Tokyo :) кроме того, там Лазарь ставится как portable, хоть на флешку, не мусоря в реестре. Kazantsev AlexeyНо вообще, либо уничтожаешь сам, либо поручаешь кому-то, как в том случае со списком-контейнером владеющим объектами. Я ж спросил на конкретном примере, мне нужно уничтожать конкретно созданный мной экземпляр-контейнер RL или это сделает TList<T>? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 08:26:49 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокЯ ж спросил на конкретном примере, мне нужно уничтожать конкретно созданный мной экземпляр-контейнер RL или это сделает TList<T>? :) Разумеется, ты сам должен заботится об уничтожении списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 09:23:30 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Спасибо. Собственно, теперь все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 09:47:33 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Нашли generics.collection? Я его полтора года назад находил без проблем. Нормальные в лазаре дженерики, насколько я знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 19:31:29 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
makhaonНормальные в лазаре дженерики, насколько я знаю. про которые из трех ты говоришь? :) 1. если про sparta , то в версии 1.6.4, то в стандартной поставке там только папка dockedformeditor. В нынешнем виде она есть в транке (возможно была и в 1.7) 2. если про те, что описаны в fgl.pas, то мне их функционал показался очень и очень куцым 3. если про TemplateGenerics , то там тоже не айс, имхо, нет гибкости спарты зы. Про "в лазаре дженерики" будет иметь смысл говорить, когда они будут, как минимум, в сорцах fpc лежать, ПМСМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 00:04:01 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокПро "в лазаре дженерики" будет иметь смысл говорить, когда они будут, как минимум, в сорцах fpc лежать, ПМСМ. Спартовские в транке лежат. Ну и есть ещё fcl-stl. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 00:40:05 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док, Sparta. Вполне живые. Я как-то проблем с ними не замечал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 00:48:18 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyСпартовские в транке лежат. makhaonSparta. Вполне живые. Наверное, единственные юзабельные, КМК. Пошел пользовать. Алексу персональный спасиб за наводку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 12:03:39 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Док, Расскажи потом, в чём отличие от дельфовских. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 14:40:53 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Cobalt747Расскажи потом, в чём отличие от дельфовских с дельфей слез лет 5 как, Лазарь с каждым релизом устраивает более, чем. Помочь не смогу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:16:17 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Cobalt747Расскажи потом, в чём отличие от дельфовских. Спартовские калька с дельфийских. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:24:17 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, я так понимаю, это был сарказм :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 17:03:52 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Докя так понимаю, это был сарказм :) Эм... Нет. Спартовские generics.collections есть калька с дельфийских generics.collections, и сделаны они были именно для совместимости с дельфями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 17:12:11 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, щас перечитал свой последний пост и понял, что ты не так поймешь. Это со стороны Cobalt747, вероятно, был сарказм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 17:19:38 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ДокЭто со стороны Cobalt747, вероятно, был сарказм.Отнюдь. Мне интересно узнать в чем отличаются дженерики свободного сообщества и коммерческого ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:14:42 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Cobalt747интересно узнать в чем отличаются дженерики свободного сообщества и коммерческого ПО На уровне RTL ничем, на уровне языка фпц'шные дженерики это почти шаблоны, а дельфийские так, баловство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 16:29:29 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyCobalt747интересно узнать в чем отличаются дженерики свободного сообщества и коммерческого ПО На уровне RTL ничем, на уровне языка фпц'шные дженерики это почти шаблоны, а дельфийские так, баловство. Пример кто-нибудь продемонстрирует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 16:35:08 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ЖышыПример кто-нибудь продемонстрирует? Пример чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 16:40:27 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Пример чем они круче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 16:51:17 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatПример чем они круче Ну попробуй на дельфях реализовать банальное сложение для типа <T>. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 16:57:19 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyrgreatПример чем они круче Ну попробуй на дельфях реализовать банальное сложение для типа <T>. Примера не будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:01:59 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ЖышыПримера не будет? Примера на дельфях не будет, ибо слишком много писанины, а на фпц это одна строчка: result := a + b; rgreatПонятно. Этим не ограничивается. Возьмём другой пример. У тебя коллекция имеющая метод ToString, который должен вернуть строковое представление всех хранимых данных. Писать такое на дельфийских дженериках - проще застрелиться, а на фпц'шных пишется элементарно: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. И работать будет с любым типом имеющим метод ToString. А если нужный тип не имеет такого метода, то для него пишется тайпхелпер реализующий этот метод. Аналогично всё будет работать и с любыми операциями приведения типов, и даже с учётом перегрузки операторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:19:18 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Реализацию примера на дельфях я и так представляю, на лазарусе кто бы показал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:26:03 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Жышына лазарусе кто бы показал Специально для тебя: а на фпц это одна строчка: result := a + b; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:32:06 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyЭтим не ограничивается. Возьмём другой пример. У тебя коллекция имеющая метод ToString, который должен вернуть строковое представление всех хранимых данных. Писать такое на дельфийских дженериках - проще застрелиться, а на фпц'шных пишется элементарноДа в общем ясно. В дельфях пое-аться надо пиcателю дженерик класса, а в лазаре его пользователю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:33:46 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, непонятно. Для типа Код: pascal 1. 2. 3. 4. 5. 6. - сложение покажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:36:54 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatа в лазаре его пользователю. :) Шта? В дельфях тебе так же будет нужен метод ToString, если захочешь корректного представления, а не как ты его себе видишь. Только для этого ты с ещё с RTTI попляшешь, что конечно очень молодёжно и вообще передово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:45:13 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Жышысложение покажи Переопределяешь оператор сложения в своём типе, а код дженерика остаётся прежним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:46:39 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyЖышысложение покажи Переопределяешь оператор сложения в своём типе, а код дженерика остаётся прежним. Не-по-нят-но. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 17:58:49 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Жышы, Класс оператор сложения писать надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:04:48 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatЖышы, Класс оператор сложения писать надо. В где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:08:32 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Жышы, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:13:05 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ЖышыНе-по-нят-но. http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Operator_Overloading_(Delphi) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:14:21 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatЖышы, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. А в лазарусе - не надо, сам собой сложится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:14:28 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyЖышыНе-по-нят-но. http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Operator_Overloading_(Delphi) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Это я знаю. Я не знаю, как в лазарусе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:15:38 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Жышы, В лазарусе как раз надо. Не надо в дельфях. Там проблема сложить 2 абстрактных типа лежит на писателе генерик класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:16:18 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatЖышы, В лазарусе как раз надо. Не надо в дельфях. Там проблема сложить 2 абстрактных типа лежит на писателе генерик класса. Вы меня путает. А ведь у меня уже есть собственный персональный путаник! ... Может, кто-то покажет код и в лазарусе и дельфи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:25:38 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
ЖышыЯ не знаю, как в лазарусе В фпц также. Кому, как не автору типа знать, каким образом правильно выполнять операции над своим типом. Код дженерика при этом остаётся простым и неизменным. rgreatНе надо в дельфях. Там проблема сложить 2 абстрактных типа лежит на писателе генерик класса. Не надо, агащазблин. В дельфях тоже надо, иначе наскладываешь там абстрактно такого... Просто в дельфях придётся лезть за методом оператора в RTTI. В общем, дженерики дельфийские это боль. Будь они нормальными, не нужны были бы пляски с этими вашими экьюалитикомпарерами с этой их косвенностью и динамичностью, которые ещё и болт кладут на кастомные операторы сравнения типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:33:47 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, В дельфях надо будет анонимную функцию сложения делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:37:14 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatВ дельфях надо будет анонимную функцию сложения делать Уж лучше в RTTI... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:42:13 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyУж лучше в RTTI...Слоупочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 18:53:46 |
|
||
|
Lazarus: дженерики
|
|||
|---|---|---|---|
|
#18+
rgreatСлоупочно. Как раз наоборот. В конструкторе класса получаешь адрес метода, сохраняешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 19:06:37 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2042106]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
86ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 352ms |

| 0 / 0 |
