Загрузка элемента управления Win32 в C # (в частности, WPF) - PullRequest
0 голосов
/ 15 июня 2010

Я написал набор библиотек Win32, которые инкапсулируют фрейм Delphi (см. Фрагмент 1 ниже) и могут загружать их в другую программу Delphi, загружая dll и назначая нужные переменные (фрагмент 2).Теперь я хочу сделать то же самое в C # (я могу загрузить DLL в pinvoke, но не уверен, как подключить элемент управления к базовой форме WPF.

Фрагмент 1

var
  frame : TFrame1;

function CreateFrame(hParent:TWinControl):Integer; stdcall; export;    
begin    
  try
    frame := TFrame1.Create(hParent);
    frame.Parent := hParent;

    frame.Align := alClient;
  finally
    result := 1;
  end;

end;

exports CreateFrame name 'CreateFrame';

Фрагмент 2

  DLLHandle := LoadLibrary('Library/Demo.Frame.dll');
  If DLLHandle > 32 then
  begin
    ReturnValue := GetProcAddress(DLLHandle, 'CreateFrame');
  end;

  ts1 := TTabSheet.Create(PageControl1);
  with ts1 do
  begin
    PageControl := PageControl1;

    Name := 'tsExternal';
    Caption := 'External';
    Align := alClient;

    ReturnValue (ts1);
  end;

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 15 июня 2010

Я не уверен, можно ли это сделать, особенно при использовании WPF.Вы можете попытаться преобразовать ваш Delphi-фрейм в элемент управления COM и использовать его из своего приложения.

...