Вы пишете код с командой, что то вроде:
- Код: Выделить всё
OwnerApplication.Command('GetPoint MyCar');
.....
Как реализовать функцию Command()
Вар.1
function Command(CmdStr:String):Variant;
или урезано и узко под win
function Command(CmdStr:String):OleVariant;
+ Прямое получение параметра.
- Нельзя проверить что команда была выполнена, если разработчик чужой команды не реализовал заполнение Result..
- Сложная обработка без документации
Итоговый код:
- Код: Выделить всё
rValue:=OwnerApplication.Command('GetPoint MyCar');
if rValue<>null then
begin
rValue.....
end;
Вар.2
- Код: Выделить всё
function Command(CmdStr:String):Integer;
//Функция возвращает меньше 0, если не найдена или не выполнена правильно.
//Или возвращает индекс для обращения к Массиву/Списку текстовому куда может при необходимости быть помещен ответ выполнения процедуры сторонней.
-Не в одну строку решение, ответ не получается напрямую.
-Многим не понравится хранение ответов как строк или списком переменных
Итоговый код:
- Код: Выделить всё
rValue:=OwnerApplication.Command('GetPoint MyCar');
if rValue>-1 then
begin
tmpStr:=OwnerApplication.CommandResults(rValue);
...Parse(tmpStr);
end;