Difference between revisions of "CreateOLE"
m (1 revision imported) |
|
(No difference)
| |
Latest revision as of 07:43, 7 February 2021
| CreateOLE (Создание OLE объекта) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция создает новый объект OLE (COM) по строке идентификатора, если требуемый объект в системе отсутствует, функция вызывает исключение. Созданный таким образом объект может быть доступен только в создавшем его потоке (ограничение архитектуры STA). Это ограничение не распространяется на визуальные OLE объекты (находящиеся на формах или в электронных таблицах), так как для таких объектов вызовы, созданные из других потоков, передаются с помощью очереди сообщений Windows в визуальный поток и исполняются там. Если необходимо работать с невизуальным объектом в нескольких потоках, используйте функцию CreateThreadedOLE, которая имеет свои ограничения.
Синтаксис
CreateOLE(<Идентификатор объекта OLE (STRING)>):<Новый объект OLE (OLE)>
Аргументы
<Идентификатор объекта OLE (STRING)>- Строка-индентификатор объекта. К примеру"Excel.Application"или"ADODB.Connection".
Возвращаемое значение
Возвращает созданный объект.
Примеры
//Пример создает новую книгу Excel с листом "Данные" и заполняет на нем квадрат 20 на 20 ячеек случайными числами.
Try
Х:=CreateOLE("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;