Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизИнтерфейсные объекты Найти похожие ветки
← →
TStas © (2005-10-23 19:28) [0]Если я напишу интерфейсный объект и интерфейс к нему, как через интерфейс вызвать его методы? Например, если я через COM работаю с экселем, естественно, я сначала его объект создаю. А здесь как? Или я чего-то никак понять не могу. Просто запустить программу, содержащую интерфейсный объект?
← →
Sergey Masloff (2005-10-23 19:48) [1]Что такое интерфейсный объект?
В любом случае интерфейс это интерфейс а объект его реализующий это объект. Клиент ничего об этом объекте не знает но это не значит что объект не нужно создавать. За это отвечаешь ты.
← →
Sergey Masloff (2005-10-23 20:02) [2]Ты имеешь в виду что-то в этом роде?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComObj;
type
IMyIntf = interface ["{D9831FCC-6064-4883-AB6B-A9A3A5694F36}"]
procedure Foo();
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyObj = class(TInterfacedObject, IMyIntf)
destructor Destroy; override;
protected
procedure Foo();
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyObj }
destructor TMyObj.Destroy;
begin
ShowMessage("Destroy");
inherited;
end;
procedure TMyObj.Foo;
begin
ShowMessage("Foo");
end;
procedure TForm1.Button1Click(Sender: TObject);
var
iface : IMyIntf;
begin
iface := TMyObj.Create();
iface.Foo;
end;
end.
← →
TStas © (2005-10-23 20:33) [3]>Sergey Masloff
Да именно это я и имею в виду. А вот как теперь обращаться к нему из другой программы? Термин "интерфейсный объект" я не сам придумал, так они названы в "Искусстве создания компонентов" Фаронова. Ведь чтобы обращаться к методу объекта, он должен быть создан.
← →
Sergey Masloff (2005-10-23 21:23) [4]Для вызова из внешней программы нужно в реестре регистрировать. Тогда подсистема COM может его найти и отдать клиенту. Наследоваться лучше от какого-нибудь TTypedComObject но рассказывать это все довольно долго.
Почитай может все же у Фаронова это описано. Не знаю. По крайней мере в 2-3 постах в форуме это не опишешь.
← →
TStas © (2005-10-24 19:02) [5]И без регистрации никак? К сожалению, у Фаранова это не написано. Что-то про регистрацию было у Фленова, притом про ручную. Просто хотел научиться ими пользоваться
← →
Sergey Masloff (2005-10-24 20:22) [6]По нормальному без регистрации никак. Именно из реестра подсистема COM поймет в каком бинарном файле реализация интерфейса которую нужно использовать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c