Вниз
Скачать: CL | DM;

Привязка процедуры на событие   Найти похожие ветки 

 
ChcngerMan   (2004-03-13 21:53) [0]

Есть код ДЛЛки:

library Atwain;

uses   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ExtCtrls, StdCtrls, DelphiTwain;

var
 Twain: TDelphiTwain;
procedure TwainTwainAcquire(Sender: TObject; const Index: Integer;
 Image: TBitmap; var Cancel: Boolean);
begin
beep;
end;

procedure ddd;stdcall;
var
 SelectedSource: Integer;
begin
 Twain:=TDelphiTwain.Create(nil);

 {It is always recommended to load library dynamically, never forcing}
 {final user to have twain installed}
 if Twain.LoadLibrary then
 begin

   {Load source manager}
   Twain.SourceManagerLoaded := TRUE;
   {Allow user to select source}
   SelectedSource := Twain.SelectSource;
   if SelectedSource <> -1 then
   begin
     {Load source, select transference method and enable (display interface)}
     Twain.Source[SelectedSource].Loaded := TRUE;
     Twain.Source[SelectedSource].TransferMode := ttmMemory;
     Twain.Source[SelectedSource].ShowUI:=false;
     Twain.Source[SelectedSource].Enabled := TRUE;
     Twain.OnTwainAcquire:=TwainTwainAcquire;
   end {if SelectedSource <> -1}

 end
 else
   showmessage("Twain is not installed.");

  end;

exports ddd;
begin
end.


Я создаю объект, так вот как сделать, чтобы при событии Twain.OnTwainAcquire вызывалась процедура.
Делаю так но не работает(т.к. неправильно, подскажите как правильно)      Twain.OnTwainAcquire:=TwainTwainAcquire;


 
olookin ©   (2004-03-13 22:00) [1]

Кажется все правильно


 
olookin ©   (2004-03-13 22:01) [2]

разве только в процедуру ddd передавать в качестве параметра указатель на процедуру TwainTwainAcquire?


 
ChcngerMan   (2004-03-13 22:06) [3]

ишет ошибку: metod pointer and regular procedure


 
Defunct ©   (2004-03-13 22:22) [4]

> ишет ошибку: metod pointer and regular procedure

Type TTwaiAcquireEvent = procedure (Sender: TObject; const Index: Integer;
Image: TBitmap; var Cancel: Boolean) Of Object;

procedure TwainTwainAcquire(Self, Sender: TObject; const Index: Integer;
Image: TBitmap; var Cancel: Boolean);
begin
beep;
end;


...

Var AEvent : TTwaiAcquireEvent;

  begin
    {Load source, select transference method and enable (display interface)}
    ...
    TMethod(AEvent).Code := @TwainTwainAcquire;
    TMethod(AEvent).Data := Self;
    Twain.OnTwainAcquire:= AEvent;
  end


 
Defunct ©   (2004-03-13 22:24) [5]

Прощу прощения, у вас там нет указателя Self. Напишете тогда так:

   ...
   TMethod(AEvent).Code := @TwainTwainAcquire;
   TMethod(AEvent).Data := Twain; // или Nil
   Twain.OnTwainAcquire:= AEvent;
 end



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
14-1078473457
Udjin
2004-03-05 10:57
2004.04.04
А что есть свойство класса


4-1074793449
.Влад
2004-01-22 20:44
2004.04.04
информация по написанию плагинов.


1-1079077976
Fame
2004-03-12 10:52
2004.04.04
Вывод строк БЕЗ незначащих пробелов.


9-1063462188
Orc
2003-09-13 18:09
2004.04.04
Фоновая анимация


3-1078765082
Pine
2004-03-08 19:58
2004.04.04
BDE 5.2 Merge Modules для Inst Express 5.0 не хочет инсталиться!




   Наверх