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

Вниз

Plug-in   Найти похожие ветки 

 
de.   (2007-11-15 10:49) [0]

Уважаемые мастера!
Не могу придумать “фокус!”…

Фокус заключается в следующем:
Есть несколько проектов которые используют формы справочников, для редактирования НД. Так форма справочника была написана в одном приложении, и помере написания других приложений она просто копировалась, из одной программы в другую. Получается что “одна и таже” форма используется в различных приложениях.
Мной было принято написать плагин (dll), и разместить в нем эту самую форму, чтобы ее могли вызывать различные приложения. Тут думаю понятно…
Так вот, помимо этого я бы хотел, добавить в эту dll, функцию которая бы возвращала информацию о плагине, т.е. наименование, версию и т.д., примерно как в статье Delphi World (Использование DLL в качестве Plug-in).
Сама функция:

// получение информации о плагине
function GetModuleInfo:TModuleInfo;stdcall;
var
 Buffer:array [byte] of char;
begin
 with Result do begin
   Name:="Отображение цифровых данных";
   Kind:=mkDigital;
   if GetModuleFileName(hInstance,@Buffer,SizeOf(Buffer)-1)>0 then
     Path:=ExtractFilePath(StrPas(Buffer));
 end;
end;

// Функция возвращает информацию о модуле. В данном
// случае это цифровое отображение, путь и тип модуля.


Но эта функция посуте возвращает тип TModuleInfo, которого описания я не нашол, но осмелюсь предположить, что он имеет вид:

Type
 TModuleInfo = record
   Name: PChar;
   ...
   Path: PChar;
 End;


На этом о плагине все!

Теперь его вызов:
Итак:
В приложении мы объявляем экспортируемые процедуры и функции из библиотеки:

type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
   hDll: THandle;
   …
   GetModuleInfo: function: TModuleInfo; stdcall;
   …
 end;

 
Думаю понятно!
Так вот дальше:
В этом самом объявлении тоже используется тип TModuleInfo, следовательно, нам необходимо тоже объявить точно такой же тип как и в dll выше”:

Type
 TModuleInfo = record
   Name: PChar;
   ...
   Path: PChar;
 End;


Думаю расписал подробно, чтобы суть была понятна целиком, всмысле полностью ;-)

ВОПРОС:

Нельзя ли гденить в dll, или программе, использовать технологию интерфейсов, дабы не объявлять каждый раз тип

TModule в dll или программе…?


 
oldman ©   (2007-11-15 11:35) [1]

Если добавляешь в dll форму справочников, добавь туда и форму "About"


 
de.   (2007-11-15 11:37) [2]


> oldman ©   (15.11.07 11:35) [1]

Непонял...


 
oldman ©   (2007-11-15 11:39) [3]


> de.   (15.11.07 11:37) [2]


На форме справочников кнопка about, которая вызывает форму, на которой инфа о версии и т.д.


 
de.   (2007-11-15 11:45) [4]

Не смысл такой, что будет сервер поекта, на котором будут вылаживатся обновления. Потом когда пользователь обновляется, при запуске программы например выдается сообщение мол так и так обноружина новая ворсия формы справочников ну или чтото вроде этого... :-)

Еще в принципе можно использовать указатель, но чем это может помочь еще не придумал... :-))

Type
PModuleInfo = ^TModuleInfo;
TModuleInfo = record
  Name: PChar;
  ...
  Path: PChar;
End;


 
Сергей М. ©   (2007-11-15 14:36) [5]


> вылаживатся


Велик и могучее русский языка !


> технологию интерфейсов


Накой ляд она сдалась ?

Реализуй свои плагины в bpl и собирай все свои проекты с ран-тайм пакетами - и всех делов)


 
de.   (2007-11-15 17:05) [6]


> Сергей М. ©   (15.11.07 14:36) [5]


> Велик и могучее русский языка !

Вылиживаться :-)


> Накой ляд она сдалась ?


А по каким пречинам bpl лутше.?


 
oldman ©   (2007-11-15 17:07) [7]


> обноружина новая ворсия


Еще как велик и могуч...
Только не говори, что по клавишам промахнулся!


 
Сергей М. ©   (2007-11-15 17:10) [8]


> по каким пречинам bpl лутше.?


http://delphi.about.com/od/objectpascalide/a/bpl_vs_dll.htm


 
de.   (2007-11-15 17:12) [9]


> oldman ©   (15.11.07 17:07) [7]

Печатаю аж пыть столбом стоит... ;-)


 
clickmaker ©   (2007-11-15 17:14) [10]


> пыть столбом стоит

Бедная Пыть... )


 
Сусл ©   (2007-11-16 00:36) [11]

я за bpl - это реальная, нет! нереальная круть. как быдто без пакетов пишешь, так все прозрачно.

но вот, если протектить от взлома нужно программу, то вроде лучше без bpl (ну гуру так говорят, я то сам в этом слаб).



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

Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.041 c
11-1181563304
Nikfel
2007-06-11 16:01
2007.12.16
Как hicon переделать в hbitmap и при этом увеличить или уменьшить


1-1189937206
sdubaruhnul
2007-09-16 14:06
2007.12.16
Общий паттерн нескольких строк


15-1195058193
VmR
2007-11-14 19:36
2007.12.16
По какому принципу изменяют версию программы


2-1195404780
Арсен
2007-11-18 19:53
2007.12.16
Свой компонент Grid, наследуемый от TStringGrid


2-1195662515
Jolik
2007-11-21 19:28
2007.12.16
Посоветуйте, как правильнее организовать веб-сервер...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский