Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Открыть документ (изменить) Excel из потока [D7, Win95/98]


balepa ©   (2006-03-07 12:51:00) 

Subj


Fay   (2006-03-07 14:04:00) [1]

2 balepa   (07.03.06 13:59) [7]
> А это был просто пример
Примеров того, как делать не надо, на форуме и так завались.
Так что там с CoInitialize?


balepa   (2006-03-07 13:59:00) [2]

А это был просто пример
Нужно формировать разные графики сразу (от разных клиентов). Client-Server.
А незнаеш случайно как такое можно в Visual Basic организовать ?


Fay   (2006-03-07 13:54:00) [3]

2 balepa   (07.03.06 13:52) [5]
А зачем тогда поток?!


balepa   (2006-03-07 13:52:00) [4]


> To Fay (07.03.06 13:44)


Вот это:
procedure MTHread.F;
var
 s: string;
 Excel, Sheet: Variant;
begin
 Excel:= CreateOleObject('Excel.Application.8');
 Excel.Visible := False;
 Excel.Workbooks.Open('c:\Мои документы\Книга1.xls');
 Sheet := Excel.Workbooks[1].WorkSheets[1];
 gs:= sheet.cells[1,1]; //[строка, столбец]
 Excel.Workbooks.Close;
 Excel.Quit;
end;

вызываю:
procedure MThread.Execute;
begin
   Synchronize(F);
end;


Fay   (2006-03-07 13:44:00) [5]

2 balepa   (07.03.06 13:41) [3]
Вынес в отдельную процедуру
Вынес ЧТО?


balepa   (2006-03-07 13:41:00) [6]

To: Fay Ну так произведи это вызов! Коран не запрещает. Только вызывать нужно из того же потока.
А я не мусульманин. По этом прошу если вам не трудно посмотрите в библии нет ли такого запрета.
Вынес в отдельную процедуру, и вызвал Synchronize(MyProcedure) подойтет ?


Fay   (2006-03-07 13:32:00) [7]

> Небыл произведен вызов CoInitialize
Ну так произведи это вызов! Коран не запрещает. Только вызывать нужно из того же потока.


balepa   (2006-03-07 13:03:00) [8]

Делаю вот так (как я понял неправильно делаю)
procedure MThread.Execute;
var
 s: string;
 Excel, WorkBook, Sheet: Variant;
begin
 //GS:= 0;
 Excel := CreateOleObject('Excel.Application.8');
 Excel.Visible := False;
 Excel.Workbooks.Open('c:\Мои документы\Книга1.xls');
 Sheet := Excel.Workbooks[1].WorkSheets[1];
 gs:= sheet.cells[1,1]; //[строка, столбец]
 //label1.Caption:= s;
 Excel.Workbooks.Close;
 Excel.Quit;
 repeat
 //  inc(GS);
   Synchronize(Form1.UpdateL);
 until Terminated = True;
end;

вылазит ошибка: Небыл произведен вызов CoInitialize


Наверх

Титульная страница Поиск, карта сайта Написать письмо