Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.023 c
1-1079612266
Сниф
2004-03-18 15:17
2004.04.04
Где можно взять подробный пример создания Com-объекта?


3-1078912232
mixam
2004-03-10 12:50
2004.04.04
BDE


14-1078768130
ChcngerMan
2004-03-08 20:48
2004.04.04
Компьютерные клубы :)


1-1079374841
Sirruf
2004-03-15 21:20
2004.04.04
Позиция мыши


7-1074492371
DimChan
2004-01-19 09:06
2004.04.04
Modem