Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

глюки с TThread   Найти похожие ветки 

 
IOrist   (2007-11-10 14:41) [0]

Хочу, чтобы моя прога одновременно работала с Excel и выполняла др. действия. В обработчике TestTread.Execute пишу:

[B]procedure[/B] TestTread.Execute();
[B]var[/B] ExcelApplication1:TExcelApplication;
   lcid:integer;
[B]begin[/B]
lcid:=LOCALE_USER_DEFAULT;
ExcelApplication1:=TExcelApplication.Create(ExcelApplication1);

...
[B]end[/B];

Выдает ошибку Stack owerflow. по всякому пытался поправить этот глюк и ничего не пашет.


 
Palladin ©   (2007-11-10 14:55) [1]

ну во первых ExcelApplication1:=TExcelApplication.Create(Nil);
а во вторых причина не в потоке


 
IOrist   (2007-11-10 14:56) [2]

а в чем?


 
Anatoly Podgoretsky ©   (2007-11-10 15:02) [3]

> IOrist  (10.11.2007 14:56:02)  [2]

В коде который не приведен.


 
Kolan ©   (2007-11-10 15:02) [4]

> а в чем?

А видимо в том как ты создаешь ExcelApplication1. Что такое Owner ты понимаешь?

ЗЫ
 ExcelApplication1:=TExcelApplication.Create(Nil); Помогло?


 
Palladin ©   (2007-11-10 15:04) [5]

жестокий вопрос

откуда я знаю? именно то место которое ты тут написал, никакой ошибки про переполнение стека выдать не может


 
IOrist   (2007-11-10 15:11) [6]

Помогло, но например


lcid:=LOCALE_USER_DEFAULT;
ExcelApplication1.Visible[lcid]:=true;


т е открываю сам Excel и появится ошибка
"Небыл произведен вызов ColInitialize".


 
Anatoly Podgoretsky ©   (2007-11-10 15:17) [7]

> IOrist  (10.11.2007 15:11:06)  [6]

Ну и сделай что просят


 
Palladin ©   (2007-11-10 15:18) [8]

ну вот и произведи

предварительно указав в dpr первой строчкой
CoInitFlags:= COINIT_MULTITHREADED;

нужные юниты уж сам постарайся поискать


 
Palladin ©   (2007-11-10 15:21) [9]

не забудь после CoUninitialize сделать, по окончанию работы


 
IOrist   (2007-11-10 15:25) [10]

Я с потоками в первый раз сталкиваюсь. Я не понял куда че писать.
Можешь по подробнее?


 
Palladin ©   (2007-11-10 15:31) [11]

За метлой


 
IOrist   (2007-11-10 15:34) [12]

не ну правда, я не понял


 
Kolan ©   (2007-11-10 15:41) [13]

> не ну правда, я не понял

http://www.delphikingdom.com/asp/listerrors.asp?ID=62


 
Anatoly Podgoretsky ©   (2007-11-10 15:45) [14]

В более поздних версиях это является параметром функции. Если использовать CoInitializeEx


 
IOrist   (2007-11-10 16:18) [15]

вызвать ColInitialize, а по окончанию CoUninitialize. Тока не могу найти тот модуль (uses), который определяет эти функции.


 
IOrist   (2007-11-10 16:53) [16]

спасибо разобрался с этим, токо вот чего осталось.
В конце процедуры, которую я вынес в дочерний поток, у меня открывается книга Excel. Дело в том, что она сразуже закрывается.
Наверно это из-за того, что поток при окончании работы разрушается => разрушает свои локальные переменные.

как зделать чтобы эта книга не закрылась?



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
15-1194287167
Kostafey
2007-11-05 21:26
2007.12.02
Систематизация мозгов в рамках Apache-пректов


2-1194593200
Kolan
2007-11-09 10:26
2007.12.02
Как проверить реализацию интерфейса и привести к нему?


1-1189420172
Kuzmich_Delphi
2007-09-10 14:29
2007.12.02
фоновая картинка под ползунок


2-1194514597
Квэнди
2007-11-08 12:36
2007.12.02
Странное отображение форм


15-1192365094
Alien1769
2007-10-14 16:31
2007.12.02
Антивирус для 64-разрядной Висты