|
|
|
Excel + ProcessMessages (Delphi)
|
|||
|---|---|---|---|
|
#18+
Добрый день. Достаточно давно работаю с импортом/экспортом в Excel, но с такой проблемой столкнулся впервые. Имеется несколько проектов, которые работают с функциями Excel и есть модуль с функциями Excel который подключен ко всем этим проектам. До этого все функции Excel использовали обрашение к активным страницам или книгам, но решил переделать и в качестве параметра передавать непосредственный указать на лист/книгу. После того как запустил проект обнаружил функция импорта/экспорта данных выполняется всего 2 раза!!!!! После долгого и тупого поиска выяснилось что на это как-то влияет "Application.ProcessMessages". После комментирования данной строки все работает прекрасно. Помогите разобраться в чем проблема. По большей "обновление" компонент формы заменил на .Refresh, но все же хочется в одном месте (в большом цикле оставить ProcessMessages). ЗЫ Тему разместил в ветке MS Office, потому что мало понимаю в OLE объектах и думаю причина в них. Несколько выдержек кода, думаю они всем будут понятны: Код: plaintext 1. 2. 3. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2011, 08:13 |
|
||
|
Excel + ProcessMessages (Delphi)
|
|||
|---|---|---|---|
|
#18+
Missory, У меня никогда не было проблем c такими симптомами ни на С++, ни на VB, ни на FoxPro. Тут не помешал-бы тестовый примерчик, потому что гадание на кофейной гуще не мой конёк :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2011, 08:31 |
|
||
|
Excel + ProcessMessages (Delphi)
|
|||
|---|---|---|---|
|
#18+
Использую Delphi XE. Офис 2007. Еще пара вопросов: 1) зачем необходимо использовать CoInitializeEx. И насколько это необходимо? 2) как видено из дальнейшего примерно я испольщую 2 проверки для проверки объекта: Код: plaintext 1. Кастрированный код: Код: plaintext 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. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2011, 08:46 |
|
||
|
Excel + ProcessMessages (Delphi)
|
|||
|---|---|---|---|
|
#18+
Никто не знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2011, 10:45 |
|
||
|
Excel + ProcessMessages (Delphi)
|
|||
|---|---|---|---|
|
#18+
MissoryЕще пара вопросов: 1) зачем необходимо использовать CoInitializeEx. И насколько это необходимо? Здесь написано что: MSDNNew applications should call CoInitializeEx instead of CoInitialize. :) Missory2) как видено из дальнейшего примерно я испольщую 2 проверки для проверки объекта: Код: plaintext 1. Да можно и так, только у меня бывала ситуация когда на компе вообще не был установлен Офис. И я выдаю сообщение что мол, установите офис, а потом работайте MissoryКастрированный код: Код: plaintext 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. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2011, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37199643&tid=2177012]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 515ms |

| 0 / 0 |
