Показать сообщение отдельно
  #1  
Старый 19.06.2012, 10:52
stas77 stas77 вне форума
Прохожий
 
Регистрация: 19.06.2012
Сообщения: 8
Репутация: 10
По умолчанию указатель на процедуру

Господа, помогите сделать.
есть несколько модулей (init1,init2) с полностью идентичными процедурами (имя процедуры, переменные)
нужно сделать так чтоб можно было выбрать из списка алгоритм расчета (совпадает с именем модуля) и программа выполнялась только по тем процедурам что в выбранном модулe.
ниже привел схему, которая работает с DLL но не с модулями
Код:
unit algoritm1;
      procedure Input(A,B,C:integer; Rez1:integer);
      procedure OutPut(G:integer; Rez2:integer); 
      procedure Run(F:integer; Rez3:integer);
exports
          Input   name   'Input',
          OutPut name   'OutPut',
          Run     name   'Run';
begin
end.

unit algoritm2;
      procedure Input(A,B,C:integer; Rez1:integer);
      procedure OutPut(G:integer; Rez2:integer); 
      procedure Run(F:integer; Rez3:integer);
exports
          Input   name   'Input',
          OutPut name   'OutPut',
          Run     name   'Run';
begin
end.

unit General;
      type
      TG_input    = procedure (A,B,C:integer; Rez1:integer);
      TG_Output = procedure (G:integer; Rez2:integer); 
      TG_Run      = procedure (F:integer; Rez3:integer);
var
    input     :TG_input;
    Output  :TG_Output;
    Run       :TG_Run;
implementation

procedure TForm1.ListBox1MouseDown();
var
    lbox  :string;
begin
       lbox:=ListBox1.Items.Strings[ListBox1.ItemIndex];
       @input:=getProcAddress( lbox ,'Input');
       @Output:=getProcAddress( lbox ,'Output');
       @Run:=getProcAddress( lbox ,'Run');
end;
end.
Ответить с цитированием