|
|
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#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. 45. 46. 47. 48. Хотелось ощутить преимущество рекордов с методами в D2007. Планировал такой способ доступа к значениям: ADataSet.ValueByName('SUMMA').AsFloat, причем метод ValueByName датасета должен был возвращать TDataValue. Однако при его использовании возникает External exception (в разных местах). Переделал (избавился от этого рекорда, ошибка пропала, теперь доступ ADataSet.ValF('SUMMA')). Похоже, с такими рекордами в D2007 не всё хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 12:05 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
DmSer, 2006, 2007 имеют такие проблемы при вызове методов у возвращаемых записей. Решений два: сохранять в переменную или использовать with (with adataset.valuebyname['name'] do). Есть ещё способ, но он может не подойти - возвращать указатель на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 12:12 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey2006, 2007 имеют такие проблемы при вызове методов у возвращаемых записейСпорить не буду, но как-то ни разу не сталкивался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 13:12 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey2006, 2007 имеют такие проблемы при вызове методов у возвращаемых записей. Решений два: сохранять в переменную или использовать with (with adataset.valuebyname['name'] do). Есть ещё способ, но он может не подойти - возвращать указатель на запись.С учетом дженериков подобные проблемы тянутся до Delphi XE. Только вчера фиксил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 16:50 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
OFF я правильно понимаю, что "рекорды с методами" это вернувшееся из Turbo Pascal понятие "object" (когда объекты могли быть статическими) вместо дельфийского "class"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 16:55 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнOFF я правильно понимаю, что "рекорды с методами" это вернувшееся из Turbo Pascal понятие "object" (когда объекты могли быть статическими) вместо дельфийского "class"?Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 16:57 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
Объекты кстати и сейчас существуют и работают. Но у объектов и рекордов разные модели памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 16:58 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
white_niggerС учетом дженериков подобные проблемы тянутся до Delphi XE. Только вчера фиксил... Я дженериками активно не пользуюсь, но с ними проблемы и на XE2 вылазят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 17:08 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
rgreatОбъекты кстати и сейчас существуют и работают. Но у объектов и рекордов разные модели памяти.это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 17:36 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)это как? http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Internal_Data_Formats_(Delphi)#Class_Types vs http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Internal_Data_Formats_(Delphi)#Record_Types ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 18:32 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
rgreat, как связаны упоминавшийся Object и Class ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 20:10 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
Попробуйте объявить вот так: TDataValue = packed record Value: string; function AsString: string; function AsInteger(DefVal: Integer = 0): Integer; function AsFloat(DefVal: Double = 0.0): Double; function AsDateTime(DefVal: TDateTime = 0.0): TDateTime; function AsDate(DefVal: TDateTime = 0.0): TDateTime; function AsTime(DefVal: TDateTime = 0.0): TDateTime; function AsBoolean(DefVal: Boolean = False): Boolean; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 21:48 |
|
||
|
Рекорды с методами в Delphi 2007
|
|||
|---|---|---|---|
|
#18+
Бывают проблемы в Delphi2007 - то internal/external error, то память течет. Но разбираюсь по месту. Посмотрел сейчас у себя. У меня есть обертка над varDecimal (которого, я так понял до сих пор в дельфи нет). И методы есть, и операции. Как раз запись, но packed . Работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 21:05 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=68&tid=2039282]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 314ms |

| 0 / 0 |
