|
|
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Решил попробовать работать с Excel при помощи TExcelApplication. Возникла проблема с выходом из Excel. Если завершать Excel из программы, то всё хорошо, а если показать Excel, закрыть программу, а потом закрыть Excel, то процесс остаётся в памяти. Как правильно освободить переменные/интерфейсы, чтобы сформированный файл остался открытым и после закрытия самого файла процесс убивался? Делаю примерно так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 17:15 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил Евгеньевич Код: pascal 1. Это-то зачем? Попробуй Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 17:19 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
А ещё вопрос, есть ли смысл в раннем связывании? Или не заморачиваться и сделать через OleObj? с OleObj я более-менее умею работать. Там уже всё понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 17:22 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
wadman, Это не работает. Так я пробовал. Код: pascal 1. Несоответствие типов Variant и TExcelApplication. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 17:24 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Если сделать Код: pascal 1. то Excel закрывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 17:29 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил Евгеньевич, В каком-то FAQ нашел. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 18:01 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
DarkMaster, Тьфу ты, в один и тот же FAQ смотрели :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 18:02 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Перечитал, что я написал. У меня просто проект на работе, взял пример из интернета. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Я, конечно, уже придумал "костыль", но не хочу его применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2018, 19:01 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Ещё раз здравствуйте! Ситуация такая: переделал на позднее связывание. RunExcel: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Теперь, если мне надо показать Excel и оставить его пользователю на растерзание, я делаю Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и Код: pascal 1. И это работает. При закрытии Excel'я пользователем, процесс убивается. НО! Теперь непонятки с программным завершением. Пока я считываю данные в вариантный массив, записываю данные в ячейки всё хорошо. Как только я записываю данные в Excel из вариантного массива - всё. После вызова StopExcel процесс остаётся в памяти. Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 09:59 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
В конце обшибся, на самом деле так: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 10:01 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил Евгеньевич, Причем, если сделать Код: pascal 1. 2. То Excel вполне закрывается пользователем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 10:06 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Проблема решена. Не используйте это: Код: pascal 1. Используйте это: Код: pascal 1. Сам пользуюсь модернизированной функцией перевода адресов R1C1 в A1. Взял в инете, добавил рекурсию. Может кому пригодится: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 04:35 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил Евгеньевич, Не пользуйтесь ни то, ни другое. Откройте для себя Offset и Resize. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 08:53 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, А с этого момента поподробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 09:12 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил ЕвгеньевичА с этого момента поподробней. Подробнее ответит справка. Примерно: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 09:16 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, Ok! Спс. Попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 09:56 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
В связи с проблемами вставки диапазона ячеек при позднем связывании опять поднимаю вопрос о завершении процесса EXCEL.EXE после закрытия, запущенного программно, excel'я. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 10:21 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, Подскажите, пожалуйста, почему Код: pascal 1. 2. Не идентично Код: pascal 1. В первом случае работает как задумано, т.е. диапазон смещается на 6 вниз и 3 вправо, а во втором случае на 6 вниз и 11 вправо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 12:10 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#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.01.2018, 12:26 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил Евгеньевич, sAddress='$A$1' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 12:26 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Может быть дело в объединённых ячейках... У меня А1:H1 объединены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 12:33 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Михаил Евгеньевич, так бы сразу и написал. С объединенными ячейками может быть что угодно, там интуитивная логика почти не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 12:51 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, Спасибо. Буду делать в два шага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 12:56 |
|
||
|
TExcelApplication
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, Таки я не могу разобраться почему Excel не закрывается (Процесс висит в памяти). Есть две функции: 1. Показывает Excel. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 2. Закрывает Excel Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Так вот, если после выполнения одних и тех же операций над Excel'ем выполнить Код: pascal 1. 2. 3. То Excel можно закрыть и процесс убивается. А если сделать Код: pascal 1. то процесс остаётся... Что я не правильно делаю? В процедуре работы с Excel'ем все Variant переменные (а они локальные) для полноты эксперимента в конце процедуры "обнуляю" (:=Unassigned) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 10:01 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=119&tid=2041300]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 389ms |

| 0 / 0 |
