Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2013, 17:31   #1
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию Событие компонента в DLL

Здравствуйте форумчане. Наткнулся вот на такую проблему...
В dll я создаю динамически экземпляр IdHTTP, но не как не могу прикрутить к нему OnAuthorization. Такой способ не увенчался успехом.
Код:
IdHttp1.OnAuthorization := Auth;
Посыпался с ошибкой "Calling conventions differ" в DelphiXE3.

ЧЯДНТ?
W0LF вне форума Ответить с цитированием
Старый 20.05.2013, 19:33   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А создать в DLL DataModule и в нем создавать компоненты и сделать обработчики их событий?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.05.2013, 19:48   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...создаем класс и в нем все и делаем. Пример:
Код:
// -----------------------------------------
// HIDOUTex.dll
// Модуль управления выходами МК ATMega8-16PU
// Author: Бадло Сергей Григорьевич
// H-page: http://raxp.radioliga.com
// Cистемные требования: win32 (NT/2003/XP)
// -----------------------------------------


library hidoutex;

uses windows, sysutils, JvHidControllerClass;

type
  HIDC = class
    procedure hidArrival(HidDev: TJvHidDevice);
....оставил одно событие, чтобы не рябило :)

   public
    constructor Create;
    destructor Destroy; override;
   end;



var  hidc1: hidc;
     hid1 : TJvHidDeviceController;
     Dev  : TJvHidDevice = nil;    // объекты HID устройств
     dout : TJvHidDevice = nil;
     //
     outVendorID: integer = $0207;
     outProductID: integer = $2010;

     inVendorID: integer = $0207;
     inProductID: integer = $2010;
     //
     inleds, outleds: byte;

{$R *.res}


............................

procedure hidc.hidArrival(HidDev: TJvHidDevice);
begin
 // если устройство не определено, то энумерация
 if (not Assigned(Dev)) or (not Assigned(dout)) then
  hid1.Enumerate;
end;


constructor hidc.Create;
Begin
 inherited Create;

 hid1                := TJvHidDeviceController.Create(nil);
 hid1.OnArrival      := hidArrival;
.........................
End;

destructor hidc.Destroy;
Begin
 freeandnil(hid1);
 inherited Destroy
End;


// команды-
function setget_leds(_outVendorID, _outProductID: integer; _outLEDs: Byte;
                     _inVendorID, _inProductID: integer; var inLEDs: longword):
                     pchar; stdcall;
........................
begin
 result:= 'raxp';

 outVendorID := _outVendorID;
 outProductID:= _outProductID;
 outleds     := _outleds;
 inVendorID  := _inVendorID;
 inProductID := _inProductID;

 hidc1:= hidc.Create;

..................... делаем чего надо


 hidc1.destroy;
end; exports setget_leds;

end.
смысл ясен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переписать событие своего компонента Dimasw Компоненты Delphi 3 25.09.2011 22:40
Как программно запустить событие onClick у компонента?! Ksardas13 C++ Builder 5 09.05.2011 13:08
Запись аудио потока в событие OnBuffer компонента SampleGrabber Jacobson Мультимедиа в Delphi 2 01.08.2010 00:22
Узнать индекс компонента в событие larin1974 Общие вопросы Delphi 5 13.12.2009 13:59
Как перехватить событие родительского компонента? postal2 Компоненты Delphi 3 28.08.2009 12:31