|
|
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
Задача: к каждой гантели у TGanttSeries добавить некий внутренний объект, с которым будет взаимодействовать пользователь. Посмотрел исходники и увидел, что самый правильный путь - добавить в Series.ValuesList свой TChartValueList, в котором и хранить свои объекты. Проблема в том, что TChartValueList не очень приспособлен к наследованию половина нужных методов объявлена невиртуальными, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: 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. а сам он заточен на хранение исключительно Double. Я вижу два варианта 1) Завести в самой серии некий TDictionary<Double, MyObject>, хранить все объекты там, а TChartValueList использовать для хранения ключей этих объектов. Этот способ попахивает проктологией и непонятно что делать с невиртуальными методами? 2) Пойти путем джедая и перекрыть все Add/Insert/Delete/Exchange... у самой серии. Будет много кода, но, по идее, путь правильный Может еще, что-то есть? С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 16:16 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
В итоге перекрыл десяток методов у серии. Получилось жутковато и с одной багофичей. Не получилось у меня сделать модификацию этого внутреннего списка перед отрисовкой. Вначале отрисовка потом добавление/удаление объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 00:28 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
ОФФ: Я когда сплайны делал, тоже перелопачивал, чтобы две серии в одну запихать) _Vasilisk_Не получилось у меня сделать модификацию этого внутреннего списка перед отрисовкой Там же, если мне не изменяет память, в CustomSeries есть Begin/EndUpdate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 12:33 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
Олег ТретьяковТам же, если мне не изменяет память, в CustomSeries есть Begin/EndUpdateЕсть. Вопрос не в том. Вопрос в том, что если эти объекты должны использоваться для отрисовки, то любая модификация серии должна будет оборачиваться в Begin/EndUpdate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 15:09 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, В классе TChartValueList есть поле IData : TObject; Для чего оно нужно хз. Можно использовать для решения твоей задачи. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 15:45 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
ziv-2014; Для чего оно нужно хзДля хранения ссылки на TFIeld у DBChart Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ziv-2014Можно использовать для решения твоей задачи.Наплодить полей не проблема. Проблема синхронизировать эти поля со вставкой/удалением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 15:58 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
[/src] Наплодить полей не проблема. Проблема синхронизировать эти поля со вставкой/удалением[/quot] Тогда перепиши TChartValueList с заменой в TeEngine под свою задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 16:07 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
ziv-2014Тогда перепиши TChartValueList с заменой в TeEngineПереписывать чужие исходники самое правильное дело ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 16:11 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ziv-2014Тогда перепиши TChartValueList с заменой в TeEngineПереписывать чужие исходники самое правильное дело В teechart можно TChartValueList переписать. Этот класс сделан немного коряво. Но переписать его довольно легко. У tms chart переписать будет на много сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 18:26 |
|
||
|
Наследование TGanttSeries
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, увы, но еще не было ни одной компоненты, которую не пришлось бы хотя бы минимально править. поэтому - да. стучишь в саппорт, отвечают: ваш частный случай делать не будем. Что тут поделать? Хорошо, если саппорт вообще хотя бы есть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 18:42 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2041401]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
178ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 439ms |

| 0 / 0 |
