Оборачивание потомка Delphi TFrame в качестве элемента управления ActiveX - PullRequest
2 голосов
/ 18 июня 2010

Я пытаюсь обернуть потомка TFrame в качестве элемента управления ActiveX, но, похоже, не удается отобразить элемент управления в мастере элементов управления ActiveX. Возможен ли такой подход, и если да, есть ли рабочие примеры, на которые я могу указать.

Я пытался следовать инструкциям здесь , но, как я уже сказал, элемент управления отображается в списке доступных элементов управления.

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 18 июня 2010

@ Mmarquee, простой способ сделать это - использовать Activeform , это элемент управления ActiveX, который инкапсулирует форму Delphi, вы можете использовать предложение @Francois или следующий подход, который облегчает развертывание любого стандартная форма в качестве элемента управления ActiveX.

Сначала вам нужно создать новый элемент управления ActiveX

альтернативный текст http://i46.tinypic.com/og2lc.png

затем добавьте новую активную форму

альтернативный текст http://i49.tinypic.com/20z1nk1.png

Теперь вам нужно создать новую стандартную форму и разместить здесь свой компонент.

Добавьте использование вашей стандартной формы в блок, где находится TActiveForm, и объявите переменную вашей стандартной формы следующим образом

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ActiveX, AxCtrls, Project75_TLB, StdVcl,
  Form1; //your unit with the standard form

type
  TActiveFormX = class(TActiveForm, IActiveFormX)
   private

   ...
   public
   MyForm :  TForm1;

наконец, в событии oncreate ActiveForm вы помещаете код для вызова стандартной формы и встраиваете в activeform.

procedure TActiveFormX.ActiveFormCreate(Sender: TObject);
begin
  MyForm := TForm1.Create(Self); //set the owner 
  MyForm.Parent := Self;//embed the form
  MyForm.Align := alClient;
  MyForm.BorderStyle := bsNone; //hide the border of the form
  MyForm.Visible := True;//makes the form visible
end;

для получения дополнительной информации проверьте ссылки на тезисы

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

Я думаю, что проще всего создать свой TFrame как обычно, чтобы вы могли использовать его в обычных приложениях Delphi.
Затем создайте пустую ActiveForm и поместите в нее свой фрейм.
И вуаля, вы можете использовать свою ActiveForm где угодно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...