Difference between revisions of "CreateThreadedOLE"
m (1 revision imported) |
1>Admin |
||
Line 13: | Line 13: | ||
* [[Объекты]] | * [[Объекты]] | ||
* [[Функции общего назначения]], [[Объект OLE]]}} | * [[Функции общего назначения]], [[Объект OLE]]}} | ||
− | Функция создает новый объект OLE (COM) по строке идентификатора, если требуемый объект в системе отсутствует, функция вызывает исключение. Объект может быть доступен в любом потоке, не только в том, который создал объект. Вызовы к таким объектам осуществляются несколько медленнее (однако, замедление очень невелико). Так все такие вызовы выполняются в одном особом потоке, в многопоточном клиенте (особенно консольном) может возникнуть ситуация, когда выполнение вызовов задерживается, так как вызвавший поток ждет, пока выполнится вызов другого потока. Если такая ситуация недопустима, необходимо использовать функцию [[CreateOLE]] и выполнять действия с объектом только в одном потоке. | + | Функция создает новый объект OLE (COM) по строке идентификатора, если требуемый объект в системе отсутствует, функция вызывает исключение. Объект работает в режима STA, однако, может быть доступен в любом потоке, не только в том, который создал объект. Вызовы к таким объектам осуществляются несколько медленнее (однако, замедление очень невелико). Так все такие вызовы выполняются в одном особом потоке, в многопоточном клиенте (особенно консольном) может возникнуть ситуация, когда выполнение вызовов задерживается, так как вызвавший поток ждет, пока выполнится вызов другого потока. Если такая ситуация недопустима, необходимо использовать функцию [[CreateOLE]] и выполнять действия с объектом только в одном потоке. |
== Синтаксис == | == Синтаксис == |
Revision as of 11:34, 2 March 2022
CreateThreadedOLE (Создание OLE объекта) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция создает новый объект OLE (COM) по строке идентификатора, если требуемый объект в системе отсутствует, функция вызывает исключение. Объект работает в режима STA, однако, может быть доступен в любом потоке, не только в том, который создал объект. Вызовы к таким объектам осуществляются несколько медленнее (однако, замедление очень невелико). Так все такие вызовы выполняются в одном особом потоке, в многопоточном клиенте (особенно консольном) может возникнуть ситуация, когда выполнение вызовов задерживается, так как вызвавший поток ждет, пока выполнится вызов другого потока. Если такая ситуация недопустима, необходимо использовать функцию CreateOLE и выполнять действия с объектом только в одном потоке.
Синтаксис
CreateThreadedOLE(<Идентификатор объекта OLE (STRING)>):<Новый объект OLE (OLE)>
Аргументы
<Идентификатор объекта OLE (STRING)>
- Строка-индентификатор объекта. К примеру"Excel.Application"
или"ADODB.Connection"
.
Возвращаемое значение
Возвращает созданный объект.
Примеры
//Пример создает новую книгу Excel с листом "Данные" и заполняет на нем квадрат 20 на 20 ячеек случайными числами. Try Х:=CreateThreadedOLE("Excel.Application"); Except Message(PopError(),"!"); Message("Ошибка создании объекта! Возможно, не установлен MS Excel!","!"); Exit; EndTry; Try Х.WorkBooks.Add(); Х.WorkSheets(1).Name:="Данные"; Л:=Х.WorkSheets(1); Л.Activate(); Л.Select(); //Заполнение квадрата 20 x 20 случайными числами 0..9 For i:=1 To 20 Do For j:=1 To 20 Do Л.Cells(i,j).Value:=Str(Random(10)); EndDo; EndDo; Finally Х.Visible:=1; EndTry;