ActiveX Controlの使い方
Visual BasicなどのActiveXコントロールを使うには
Visual C++などで作成したCOMコンポーネントを使うには
例
unit MainForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, ButtonXControl_TLB, ComObj, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ButtonX1: TButtonX; Label1: TLabel; btnCtrl: TButton; Shape1: TShape; procedure OnClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnCtrlClick(Sender: TObject); private { Private 宣言 } com: Variant; public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.OnClick(Sender: TObject); begin Close end; procedure TForm1.FormCreate(Sender: TObject); begin try com := CreateOleObject('Vled1.VirLed1'); except ShowMessage('Could not start the object.'); Exit; end; end; procedure TForm1.btnCtrlClick(Sender: TObject); begin if com.Status = 0 then begin com.Status := 1; Shape1.Brush.Color := clRed; end else begin com.Status := 0; Shape1.Brush.Color := clGray; end; end; end.
パラメータを省略したメソッドの呼び出し方
ActoveX/OLEではパラメータを省略してメソッドを呼び出すことができますが、Delphiではこのようなことは許されていません。しかし、そのようなことも必要なことがあります。個のような場合、つぎのような関数を省略パラメータとして使います。
function TfrmPeerA.NoParam: Variant;
begin
TVarData(Result).VType := varError;
TVarData(Result).VError:= DISP_E_PARAMNOTFOUND;
end;