Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПомогите с языковой конструкцией Найти похожие ветки
← →
>| (2011-01-25 12:25) [0]type
TLoadPluginProc = function: TFormClass;
var
Module: HMODULE;
LoadPlugin: TLoadPluginProc;
begin
try
Module := LoadPackage(
Format(FmtModule, [ExtractFilePath(Application.ExeName), PluginName]));
try
LoadPlugin := nil;
@LoadPlugin := GetProcAddress(Module, LoadPluginProcName);
if Assigned(LoadPlugin) then
if LoadPlugin is TPluginForm then //<- тут ошибка
TPluginForm(LoadPlugin).CreatePlugin(Module, Param)
else
LoadPlugin;//возможно вызывается второй раз
except
UnloadPackage(Module);
raise;
end;
except
on E: EAbort do
raise;
end
end
← →
>| (2011-01-25 12:30) [1]уже разобрался
var
Module: HMODULE;
LoadPlugin: TLoadPluginProc;
LoadPluginResult: TFormClass;
begin
if Pos(ExtModule, PluginName) = 0 then
try
Module := LoadPackage(
Format(FmtModule, [ExtractFilePath(Application.ExeName), PluginName]));
try
LoadPlugin := nil;
@LoadPlugin := GetProcAddress(Module, LoadPluginProcName);
if Assigned(LoadPlugin) then
LoadPluginResult := LoadPlugin;
if LoadPluginResult.InheritsFrom(TPluginForm) then
TPluginForm(LoadPluginResult).CreatePlugin(Module, Param)
except
UnloadPackage(Module);
raise;
end;
except
on E: EAbort do
raise;
end
← →
Юрий Зотов © (2011-01-25 12:38) [2]
> if LoadPluginResult.InheritsFrom(TPluginForm) then...
А почему не
if LoadPluginResult is TPluginForm then...
?
← →
Юрий Зотов © (2011-01-25 12:55) [3]> LoadPluginResult: TFormClass;
Вопрос снят.
← →
Slym © (2011-01-25 12:56) [4]>| (25.01.11 12:25)
if LoadPlugin is TPluginForm then //<- тут ошибка
type TLoadPluginProc = function: TFormClass;
описан в 2х местах в приложении и в пакете, и для программы это 2 разных неравных объявления!
для равенства нужно определить тип один раз. обычно это делается в отдельном, статично загружаемом пакете, остальные пакеты uses этот пакет и знают обо всех его определениях
← →
Slym © (2011-01-25 12:58) [5]Slym © (25.01.11 12:56) [4]
TPluginForm
предыдущим постом мог ошибиться... где определен TPluginForm?
← →
>| (2011-01-25 13:22) [6]
> где определен TPluginForm?
в этом же модуле
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.105 c