Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CreateOleObject в Design-time [D6, Win2k]


Wetnose ©   (2002-10-08 08:05:00) 

Создал компонент, который использует вызов CreateOleObject.
Однако, данная команда работает только в run-time!

В design-time выдаётся сообщение об ошибке, типа "Параметр задан неверно".

Почему?

Помогите!!!
Очень надо!!!


REA   (2002-10-08 10:33:00) [1]

Имхо нужно variant явно к типу интерфейса приводить с помощью as


Opuhshii   (2002-10-08 10:01:00) [2]

Моя твоя не понимайт!,..
если в В design-time выдаётся сообщение об ошибке, типа "Параметр задан неверно" -> Параметр задан неверно!!!

unit OLEComponent;

interface

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

type
TOLEComponent = class(TComponent)
private
FOLE:Variant;
FOLECLASS:string;
procedure SetOLECLASS(aName:String);
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(aOwner:TComponent);override;
destructor Destroy;override;
{ Public declarations }
published
property OLECLASS:string read FOLECLASS write SetOLECLASS;
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Standard", [TOLEComponent]);
end;

procedure TOLEComponent.SetOLECLASS(aName:String);
begin
FOLE:=0;
FOLECLASS:=aName;
FOLE:=CreateOleObject(OLECLASS);
if AnsiSameText(OLECLASS,"Excel.Application") then begin
FOLE.Workbooks.Add;
FOLE.Visible:=True;
end;
end;

constructor TOLEComponent.Create(aOwner:TComponent);
begin
Inherited Create(AOwner);
OLECLASS:="Excel.Application";
end;

destructor TOLEComponent.Destroy;
begin
FOLE:=0;
Inherited Destroy;
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо