Всем привет. Есть ли в Лазарусе возможность использования OleFunction(), как это предусмотренно в Делфи в типе Olevariant?
Допустим если я хочу вызвать функцию из СОМ сервера по имени вбитой в Эдит, а не жестко прописанной в программе?
Использую FPC 2.6.4 и Lazarus 1.2.4
OleFunction
Модератор: Модераторы
Из
переделанной местами под Лазарус.
В частности, вот такое
не проканывает, потому заменил на допустимое
Или вы о другом?
Для меня эти сом, ole и пр. не моя атмосфера.
Код: Выделить всё
//******************************************************************************
//* Written by Yuri (aka Yuric74) *
//* http://www.sql.ru/forum/actualthread.aspx?tid=405083 *
//* all version at http://yuri.elmeh.ru *
//******************************************************************************
unit uOpenOffice;
переделанной местами под Лазарус.
В частности, вот такое
Код: Выделить всё
function TOOWriterCell.GetDataType:TOpenDT;
begin
Result:=FCellObj.Type;
end;
Код: Выделить всё
function TOOWriterCell.GetDataType:TOpenDT;
begin
Result:=FCellObj.getType;
end;
Код: Выделить всё
protected
property SheetObj:variant read FSheetObj write FSheetObj;
...
function TOOCalcSheet.GetUsedArea: TOpenRangeAddress;
var
v:variant;
begin
v:=SheetObj.CreateCursor;
v.GotoStartOfUsedArea(false);
Result.Sheet:=v.RangeAddress.Sheet;
Result.StartColumn:=v.RangeAddress.StartColumn;
Result.StartRow:=v.RangeAddress.StartRow;
v.GotoEndOfUsedArea(false);
Result.EndColumn:=v.RangeAddress.EndColumn;
Result.EndRow:=v.RangeAddress.EndRow;
v:=Unassigned;
end;
Или вы о другом?
Для меня эти сом, ole и пр. не моя атмосфера.
Да, я о другом. В Builder C++ из пакетов RAD Studio уже оч. давно есть возможность вызвать метод или свойство по его имени не прописав его жестко в программе. В некую функцию передается строка, по этой строке вызывается свойство интерфейса. Вот я тоже хочу такое но в Лазарусе.
Я то понимаю что Билдер и Лазарус и рядом не валяются, но все же.
Я то понимаю что Билдер и Лазарус и рядом не валяются, но все же.
- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
Виталий писал(а):Да, я о другом. В Builder C++ из пакетов RAD Studio уже оч. давно есть возможность вызвать метод или свойство по его имени не прописав его жестко в программе. В некую функцию передается строка, по этой строке вызывается свойство интерфейса. Вот я тоже хочу такое но в Лазарусе.
Я то понимаю что Билдер и Лазарус и рядом не валяются, но все же.
Можно сделать самому, если есть желание, объем не сильно большой. Вам нужно только правильно вызывать IDispatch.Invoke. Если есть желание поразбираться, могу скинуть кусок кода реализующий вызовы IDispatch.Invoke из своих наработок.
Может очень помочь книга, авторы Тейксейра, С. Пачеко К. "Borland Delphi. Руководство разработчика". У меня она печатная в 2х томах для Delphi 5. Там очень хорошо описано как работает и как использовать механизм работы с IDispatch.
Спасибо, я как раз разбиваюсь с IDispatch.
вроде понял в какую сторону двигаться.
вроде понял в какую сторону двигаться.
