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;