Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

создание и подключение плагина   Найти похожие ветки 

 
Std   (2006-03-22 23:32) [0]

Доброго времени суток. подскажите пожалуйста(кусочком кода) как создать програму что бы можна было добавлять к ней плагины. Ситуация: в папке с прогой есть папка plugin в нее добавляется дллка. и при выполнении проги когда пользователь нажимает кнопку открыть файл в окне диалога появляется список файлов для открытия с только что добавленой дллки. например сама прога умее открывать только *.txt файлы а после добавления плагина она умеет открывать еще и *.bmp файлы.
Заранее благодарен


 
Der Nechk@ssoff ©   (2006-03-23 07:34) [1]

Интерсный вопрос-жаль помочь не могу...


 
EvS ©   (2006-03-23 08:19) [2]

>подскажите пожалуйста(кусочком кода)

Сначала тебе надо не кусочком кода, а литературой на эту тему поинтересоваться


 
TUser ©   (2006-03-23 08:39) [3]

Надо реализовать
1. Придумать, какие функции должна экспортировать dll, реализующая плагин
2. Реализовать сканировние dll ок в требуемой папке. Те, кто экспортирует, что требуется, - подключать. См. LoadLibraray, GetProcAddress.


 
Der Nechk@ssoff ©   (2006-03-23 08:45) [4]

У меня схожая проблема.


> TUser ©   (23.03.06 08:39) [3]


Как реализовать сканирование папки на наличие длл-ок?


 
Std   (2006-03-23 12:47) [5]

ТОесть нада в папке просмотреть все дллки, и чтобы у каждой дллки были одинаковые названия функций?
З.Ы. а какую литературу почитать?


 
Kolan ©   (2006-03-23 15:59) [6]

Тайскера и Пачеко. Про Dll. Есть у Анатолия подгорецкого на сайте.


 
Andy BitOff ©   (2006-03-23 22:27) [7]

Kolan ©   (23.03.06 15:59) [6]
А чего же с маленькой буквы? =)


 
Amoeba ©   (2006-03-24 10:16) [8]

Несколько статей об использовании плагинов найдешь на http://www.delphikingdom.com


 
Kolan ©   (2006-03-24 23:17) [9]

Andy BitOff ©   (23.03.06 22:27) [7]
Потомучто Miss Type, а ШО? :).


 
Старик   (2006-03-25 08:33) [10]

Проверить папку на наличие DLL-файлов. Результат - найденные DLL в списке класса TStringList

procedure TForm1.ScanForModules(var Modules : TStringList);
var sr : TSearchRec;
   FileAttrs : integer;
begin
FileAttrs := faAnyFile;
if FindFirst("Modules\*.dll", FileAttrs, sr) = 0 then
repeat
if (sr.Attr and FileAttrs) = sr.Attr then Modules.Add(sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;

Определяем, какие из найденных DLL являются "нашими":
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
   ModuleHandle : integer;
begin
for i := 0 to ListBox1.Count - 1 do begin
ModuleHandle := LoadLibrary(PChar("Modules\" + ListBox1.Items.Strings[i]));
if ModuleHandle >= 32 then begin
IsName := GetProcAddress(ModuleHandle, "IsSampleModuleName");
if assigned(IsName) then ListBox2.Items.Add(string(IsName));
FreeLibrary(ModuleHandle);
end;
end;
end;

Вот и все. Весь прикол в том, чтобы у наших модулей была функция-идентификатор. Во всех создаваемых тобой модулях она обязательно должна быть и всегда с одинаковым именем.


 
Старик   (2006-03-25 08:34) [11]

Сорри, забыл:

type
 TGetNameFunc = function : PChar;

var
 Form1: TForm1;
 IsName : TGetNameFunc;

implementation

{$R *.dfm}
...
И далее по списку



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
10-1116429022
Santrope
2005-05-18 19:10
2006.04.09
Как распечатать Excel документ при помощи PrintDialog ?


4-1135686570
Игорь Шевченко
2005-12-27 15:29
2006.04.09
Ищется способ прослушивания драйвера LPT-порта


10-1116338010
sinsin
2005-05-17 17:53
2006.04.09
Доступ к RemoteDataModule из Borland Socket Server?


2-1143122160
my_sweet
2006-03-23 16:56
2006.04.09
записать текст из мемо в Stringgrid


2-1143449951
Daria
2006-03-27 12:59
2006.04.09
Delphi+Excel