Программирование на Атлантисе (VIP, FCOM, ARD), FastReport
Модераторы: m0p3e, edward_K, Модераторы
-
Alexander
- Местный житель
- Сообщения: 248
- Зарегистрирован: 28 ноя 2006, 13:29
Сообщение
Alexander »
Есть несколько интерфейсов с одинаковыми параметрами:
Interface1
Interface2
Interface3
....
Хочу сделать процедуру для вызова интерфейса:
Код: Выделить всё
procedure RunMyInt(sInterfase: string; p1: word; p2: word);
//some code
RunInterfase(sInterface, p1, p2);
//some code
end;
однако как это сделать?
в таком виде:
RunInterfase(sInterface, p1, p2);
при выполнении огребаю ошибку: Интерфейс sInterface не найден
в таком
RunInterfase(string(sInterface), p1, p2);
ругается компилятор. Можно ли как-то это реализовать??
-
Max_Fin
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
-
Контактная информация:
Сообщение
Max_Fin »
RunInterfase('sInterface', p1, p2);
Жду выхода Вселенная 2.12!
-
Alexander
- Местный житель
- Сообщения: 248
- Зарегистрирован: 28 ноя 2006, 13:29
Сообщение
Alexander »
Max_Fin
не работает!
тестовый пример:
Код: Выделить всё
Interface test1 'test1' doaccept, cyan;
Create View;
handleevent
cmInit:{
message('Выполнились!');
Abort;
exit;
}
end;
end.
Interface test 'test' doaccept, cyan;
Create View;
procedure DoInit(sInterface:string);
{
RunInterface(sInterface);
}
handleevent
cmInit:{
DoInit('test1');
Abort;
exit;
}
end;
End.
-
Max_Fin
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
-
Контактная информация:
Сообщение
Max_Fin »
Упс, извени, на самом деле ошибся.
Воспользуйся функциями модуля Клиент
Код: Выделить всё
Function vRunInterface (String): Integer; external 'G_VDE.dll';
Пример:
Код: Выделить всё
sInter := 'Interface1';
vFreeParams;
vPutParam('Param1', Value1);
vPutParam('Param2', Value2);
......................................................
vPutParam('ParamN', ValueN);
VRunInterface(sInter);
Жду выхода Вселенная 2.12!
-
Alexander
- Местный житель
- Сообщения: 248
- Зарегистрирован: 28 ноя 2006, 13:29
Сообщение
Alexander »
Спасибо! Попробую!
Но я это проблему решил с помощью макроса:
Код: Выделить всё
Interface test1 'test1' doaccept, cyan;
Create View;
handleevent
cmInit:{
message('Выполнились');
Abort;
exit;
}
end;
end.
#declare MyFunc(s)
RunInterface(#s)
#end
Interface test 'test' doaccept, cyan;
Create View;
procedure DoInit(sInterface:string);
{
#MyFunc('test1');
}
handleevent
cmInit:{
DoInit('test1');
Abort;
exit;
}
end;
End.