Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Вниз

Вопрос про плагины (компонент TJvPlugin)   Найти похожие ветки 

 
NeyroSpace ©   (2006-11-27 15:14) [0]

Имеем демо-код небольшого плагина в виде DLL.
{---SamplePluginOne.dpr---}
library SamplePluginOne;

uses
 ShareMem,
 SamplePluginOneU in "SamplePluginOneU.pas" {SampleUILPlugin: TJvPlugin};

exports
 RegisterPlugin;

begin

end.

{---SamplePluginOneU.pas---}
unit SamplePluginOneU;

interface

uses
 Windows,
 Messages,
 SysUtils,
 Classes,
 Dialogs,
 Forms,
 JvPlugin;

type
 TSampleUILPlugin = class(TJvPlugin)
   procedure uilPlugin1Commands0Execute(Sender: TObject);
   procedure uilPlugin1Commands1Execute(Sender: TObject);
   procedure uilPlugin1Commands2Execute(Sender: TObject);
   procedure uilPlugin1PluginMessage(Sender: TObject; APluginMessage: Integer; AMessageText: string);
   procedure uilPlugin1Configure(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

function RegisterPlugin: TSampleUILPlugin; stdcall;

implementation

{$R *.DFM}

// IMPORTANT NOTE: If you change the name of the Plugin container,
// you must set the type below to the same type. (Delphi changes
// the declaration, but not the procedure itself. Both the return
// type and the type created must be the same as the declared type above.

function RegisterPlugin: TSampleUILPlugin;
begin
 Result := TSampleUILPlugin.Create(nil);
end;

procedure TSampleUILPlugin.uilPlugin1Commands0Execute(Sender: TObject);
begin
 ShowMessage("Command One clicked");
end;

procedure TSampleUILPlugin.uilPlugin1Commands1Execute(Sender: TObject);
begin
 ShowMessage("Command Two clicked");
end;

procedure TSampleUILPlugin.uilPlugin1Commands2Execute(Sender: TObject);
begin
 ShowMessage("Command Three clicked");
end;

procedure TSampleUILPlugin.uilPlugin1PluginMessage(Sender: TObject;
 APluginMessage: Integer; AMessageText: string);
begin
 ShowMessage(Format("Plugin Message number %d received. MessageText: %s", [APluginMessage, AMessageText]));
end;

procedure TSampleUILPlugin.uilPlugin1Configure(Sender: TObject);
begin
 ShowMessage("You could put a configuration dialog here, if your plugin requires one.");
end;

end.

//-------
Собственно говоря DLL-плагин экспортирует одну ф-цию function RegisterPlugin: TSampleUILPlugin; stdcall;
т.е. при вызове этой ф-ции главная программа получает указатель на класс плагина. Я так понимаю написать плагин с таким классом на VC++ нельзя? Ведь в VC++ классы имеют совершенно дугую внутреннюю структуру? Или я ошибаюсь?


 
Сергей М. ©   (2006-11-27 16:14) [1]


> Или я ошибаюсь?


Нет, не ошибаешься.



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

Форум: "Основная";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
1-1164375281
DelphiLexx
2006-11-24 16:34
2007.01.21
DBGridEh и OnEditButtonClick


4-1157525047
imp
2006-09-06 10:44
2007.01.21
Свойства принтера


4-1158071811
Ling
2006-09-12 18:36
2007.01.21
Отправить сообщения в службу


2-1167416624
heaven
2006-12-29 21:23
2007.01.21
Скрыть процес с панели задач (это не то о чём думаете)))


15-1167064904
kaZaNoVa
2006-12-25 19:41
2007.01.21
Религия как модель счастливой жизни человека





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский