![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открыть документ (изменить) 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