Содержание материала

Теперь осталось только собрать плагины и запустить. Сбор информации и запуск происходит по нажатию одноимённой кнопки на главной форме. Как собирать плагины дело вкуса. В этом примере я сканирую заданный каталог, можно хранить в INI-файле, реестре, можн о придумать свой формат хранения. Сбор плагинов:

 

Code:

// нажатие кнопки запуска

procedure TfmMain.btStartClick(Sender: TObject);

// добавление плагинов в список

procedure AppendModulesList(FileName:String);

var

   Module:TModule;

   IsValid:Boolean;

begin

   // создание экземпляра плагина

   Module:=TModule.Create(FileName,IsValid);

   // если создан некорректно

   if not IsValid then

     // удаление

     Module.Free

   else begin

     // добавление

     SetLength(ModulesList,Length(ModulesList)+1);

     ModulesList[Length(ModulesList)-1]:=Module;

   end;

end;

 

var

sr:TSearchRec;

i:Integer;

begin

// построение списка модулей

SetLength(ModulesList,0);

// поиск файлов *.dll

if FindFirst(edPath.Text+'*.dll',faAnyFile and not faDirectory,sr)=0 then begin

   AppendModulesList(edPath.Text+sr.Name);

   while FindNext(sr)=0 do

     AppendModulesList(edPath.Text+sr.Name);

end;

// запуск найденных модулей

if Length(ModulesList)>0 then begin

   for i:=0 to Length(ModulesList)-1 do begin

     // инициализация

     ModulesList[i].Initialize;

     // передача Application

     ModulesList[i].SetData(dkApplication,Application,SizeOf(Application));

     // запуск плагина

     ModulesList[i].Run;

   end;

   // старт таймера

   Events.Enabled:=True;

end;

end;

 

Мне кажется, что я достаточно подробно описал в комментариях производимые действия :) Ну и последнее засылка данных по таймеру:

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить