Показать сообщение отдельно
  #41  
Старый 08.11.2012, 16:17
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

а если присвоить perebor к классу , то тип процедуры изменится
с
Код:
Type TProc = Procedure();
на
Код:
Type TProc = Procedure() of object;
и указатель на такую процедуру будет занимать ДВА поинтера и работать с этим придётся по другому, например так
----EXE------
Код:
type Tvideodriver = class(TForm)
 procedure leftClick(Sender: TObject); 
 procedure perebor(Sender: TObject);// адрес этой процедуры передается в 
dll и обратно end; 

......

procedure keyctrl(nx1:TNotifyEvent); external 'MyDLL.DLL'; 
implementation

procedure Tvideodriver.Button1Click(Sender:TObject);
begin
   keyctrl(perebor); //<<== заметь, без @ и без скобок 
end;
------ DLL -----
procedure keyctrl(nx1:TNotifyEvent);
var
rezultat :TNotifyEvent;
begin

rezultat := nx1; //<<== заметь, без @ и без скобок

...
end;
Ответить с цитированием