Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

 { GUID'ы класса компоненты }

 Class_MyFontServer: TGUID = '{29C7AC96-0807-11D1-B2BA-0020AFF2F575}';


type

 { Предварительные объявления: Интерфейсы }

 IMyFontServer = interface;

 IMyFontServerDisp = dispinterface;


 { Предварительные объявления: CoClasse'ы }

 MyFontServer = IMyFontServer;


 { Диспинтерфейс для объекта MyFontServer }

 IMyFontServer = interface(IDispatch)['{29C7AC95-0807-11D1-B2BA-0020AFF2F575}']

  function Get_MyFont: IFontDisp; safecall;

  procedure Set_MyFont(const Value: IFontDisp); safecall;

  property MyFont: IFontDisp read Get_MyFont write Set_MyFont;

 end;


 { Объявление диспинтерфейса для дуального интерфейса IMyFontServer }

 IMyFontServerDisp = dispinterface['{29C7AC95-0807-11D1-B2BA-0020AFF2F575}']

  property MyFont: IFontDisp dispid 1;

 end;


 { MyFontServerObject }

 CoMyFontServer = class

  class function Create: IMyFontServer;

  class function CreateRemote(const MachineName: string): IMyFontServer;

 end;


implementation


uses ComObj;


class function CoMyFontServer.Create: IMyFontServer;

begin

 Result := CreateComObject(Class_MyFontServer) as IMyFontServer;

end;


class function CoMyFontServer.CreateRemote(const MachineName: string): IMyFontServer;

begin

 Result := CreateRemoteComObject(MachineName, Class_MyFontServer) as IMyFontServer;

end;


end.

{--------------------------------------------------------------------}


unit Unit1;


interface


uses ComObj, Project1_TLB, ActiveX, Graphics;


type TMyFontServer = class(TAutoObject, IMyFontServer)

private

 FFont: TFont;

public

 procedure Initialize; override;

 destructor Destroy; override;

 function Get_MyFont: IFontDisp; safecall;

 procedure Set_MyFont(const Value: IFontDisp); safecall;

end;


implementation


uses ComServ, AxCtrls, Unit2;


procedure TMyFontServer.Initialize;

begin

 inherited Initialize;

 FFont := TFont.Create;

end;


destructor TMyFontServer.Destroy;

begin

 FFont.Free;

 inherited Destroy;

end;


function TMyFontServer.Get_MyFont: IFontDisp;

begin

 FFont.Assign(Form2.Label1.Font);

 GetOleFont(FFont, Result);

end;


procedure TMyFontServer.Set_MyFont(const Value: IFontDisp);

begin

 SetOleFont(FFont, Value);

 Form2.Label1.Font.Assign(FFont);

end;


initialization

 TAutoObjectFactory.Create(ComServer, TMyFontServer, Class_MyFontServer, ciMultiInstance);

end.

{--------------------------------------------------------------------}


unit Unit2;


interface


uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;


type TForm2 = class(TForm)

 Label1: TLabel;

end;


var Form2: TForm2;


implementation


{$R *.DFM}


end.

{--------------------------------------------------------------------}


unit FontCli1;


interface


Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT