Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.31;
Скачать: CL | DM;

Вниз

ActiveX Control   Найти похожие ветки 

 
sirin   (2004-07-26 19:02) [0]

Народ, помогите, пол дня парюсь, уже задолбался вконец =(((
Есть простейший компонент, все что он делает, это рисует крест.
вот код

unit mgXShape;

interface

uses
 Classes, Graphics, Controls;
               
type
 TmgXShape = class(TGraphicControl)
 private
 protected
   procedure Paint; override;
 public
   constructor Create(AOwner: TComponent); override;
 published
   property Width default 20;
   property Height default 20;
 end;

procedure Register;

implementation

constructor TmgXShape.Create;
begin
  inherited Create(AOwner);
  Width:=20;
  Height:=20;
end;

procedure TmgXShape.Paint;
begin
 with Canvas do
 begin
   Pen.Width := 3;
   pen.color := clBlack;
   MoveTo(0,0);
   LineTo(Width,Height);
   MoveTo(0,height);
   LineTo(Width,0);
 end;
end;

procedure Register;
begin
 RegisterComponents("Our components", [TmgXShape]);
end;

end.



мне нужно сделать с него ActiveX Control

я провожу стандартние действия, с помощью ActiveX Control Wizard выбираю свой класс, но в получаемом коде появляются ошибки

procedure TmgXShapeX.InitializeControl;
begin
 FDelphiControl := Control ;//as TmgXShape;
end;
- Incoplatible types "TmgXShare" and "TWinControl"

как с этим боротся?


 
MU ©   (2004-07-26 19:29) [1]

Наследуй свой компонент от TWinControl


 
MU ©   (2004-07-26 19:33) [2]

т.е от TCustomControl :)


 
sirin   (2004-07-26 20:28) [3]

Сделал.
Проэкт скомпилился нормально, но при запуске експлорера выдает ошибку.... =(


 
Сашенька ©   (2004-08-03 18:20) [4]

Тут вроде тут поминимому:
Если узнаешь как сделать его не визуальным то скажу большое спасибо: sanek@optima.com.ua

type
 My = class(TCustomControl)
 private
  procedure SetParent(AParent: TWinControl); override;
 protected
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;
  procedure Paint; override;
  function CanResize(var NewWidth: Integer; var NewHeight: Integer): Boolean; override;
 public
   { Public declarations }
 published
  property Align;
  property Font;
  property Caption;
 end;

procedure Register;

implementation

procedure Register;
 Begin
   RegisterComponents("ActiveX", [My]);
 End;

{ T_ColorDialogVisualComponent }

Function My.CanResize(var NewWidth,
 NewHeight: Integer): Boolean;
 Begin
   Result := false;
 End;

constructor My.Create(AOwner: TComponent);
 Begin
   Inherited Create(AOwner);
   Height := 26;
   Width := 26;
   Visible := false;
 End;

Destructor My.Destroy;
 Begin
   inherited Destroy;
 End;

procedure My.Paint;
 Begin
   Canvas.Pen.Color := $00FF00;
   Canvas.MoveTo(0,0);
   Canvas.LineTo(Width,Height);
   Canvas.MoveTo(Width,0);
   Canvas.LineTo(0,Height);
 End;

procedure My.SetParent(AParent: TWinControl);
 Begin
   inherited;
 End;




Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
1-1121347666
Zak3D[@Tm]
2005-07-14 17:27
2005.07.31
Взаимосвязь модулей приложения.


1-1121028705
DDDsa
2005-07-11 00:51
2005.07.31
Проблема с кириллицей при поиске.


1-1120997275
xroot
2005-07-10 16:07
2005.07.31
Абсолютные координаты компонента


1-1121128966
Барс
2005-07-12 04:42
2005.07.31
Как изменить системное время windows


4-1117696813
Chaser
2005-06-02 11:20
2005.07.31
Вытащить текст из компонента, находящегося в другой программе