ЭТО неверно:
type
TMyFunc = function(inP : Integer): outP : Boolean;
функция не может иметь два типа возврата (как outP, так и Boolean)!
INSTEAD:
type
outP = Longint; // or whatever you want outP to be.
TMyFunc1 = function (inP : Integer): outP;
TMyFunc2 = function (inP : Integer): Boolean;
теперь вы можете определить переменную функции, скажем, doit1, и заставить ее определение иметь тип TMyFunc1. аналогично: doit2 имеет тип TMyFunc2.
var
doit1 : TMyFunc1;
doit2 : TMyFunc2;
если у вас есть функции:
const
DllName1 = 'MyFirstDLL.DLL';
DllName2 = 'MySecondDLL.DLL';
function TestFunc1(inP : Integer): outP; external DllName1;
function TestFunc2(inP : Integer): Boolean; external DllName2;
, тогда вы можете назначить эти функции заполнителям doit1, doit2:
procedure AssignPlaceholders;
begin
doit1 := TestFunc1;
doit2 := TestFunc2;
end;
ПРИМЕЧАНИЕ. Вы должны объявить типы заполнителей (TMyFunc1, TMyFunc2) Точно так же, как и реальные функции, включая спецификаторы, такие как stdcall, cdecl и т. Д.
После вызова AssignPlaceholder вы можете вызывать doit1 и / или doit2 точно так же, как и любую другую функцию.
Что Вы пытаетесь сделать? Если Ваше приложение хочет загрузить файл, можно использовать код UrlConnection. Если Вы хотите загрузить пакет затем ACTION_PACKAGE_INSTALL
, должен сделать то, что Вы хотите.
Хотя я не верю, что в браузере есть намерение загрузки, вы, вероятно, можете использовать обычное ACTION_VIEW
намерение и попросить браузер решить, следует ли загружать или просматривать URL-адрес в зависимости от содержимого. тип.
Итак, из вашего кода триггера
new Intent(Intent.ACTION_VIEW, Uri.parse(url))
и надеюсь, что это инициирует загрузку в браузере.