ÓÃdelphi ÔÚWordÉÏÃæÔö¼ÓÒ»¸ö°´Å¥
н¨Ò»¸öActive Library
2. н¨Ò»¸öCOM Object£¬ÔÚClass NameÌîÒ»¸öÃû×Ö£¬ÈçTest¡£
µãÒ»ÏÂImplemented InterfaceºóÃæµÄList°´Å¥¡£ÔÙµãһ϶Ի°¿òÖеÄAdd Library°´Å¥£¬
Ñ¡Ôñ“Program Files\Common Files\Designer”Ŀ¼ÏµÄmsaddndr.dllÎļþ¡£
È»ºóÔÚÁбíÖÐÕÒµ½msaddndr.dllÀïÃæµÄ_IDTExtensibility2½Ó¿Úµã»÷È·¶¨¡£
3. ÏÖÔÚCom AddIn²¿·ÖÒѾÍê³É£¬ÏÖÔÚÒªÔÚWordÀïÃæ¼ÓÒ»¸öCommandBarºÍÒ»¸ö°´Å¥£¬²¢ÇÒÈð´Å¥ÏìӦʼþ¡£
4. ´´½¨Ò»¸öTcommandBarButtonµÄOleServerÀàÒÔÁ¬½Óµ½CommandButton²¢ÏìӦʼþ¡£´úÂ룺ÈçÏÂ
¶¨Ò岿·Ö
TCommandBarButtonClick = procedure(const Ctrl: OleVariant; var CancelDefault: OleVariant) of Object;
TCommandBarButton = class(TOleServer)
private
FIntf: CommandBarButton;
FOnClick: TCommandBarButtonClick;
function GetDefaultInterface: CommandBarButton;
procedure SetOnClick(const Value: TCommandBarButtonClick);
protected
procedure InitServerData; override;
procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: CommandBarButton);
procedure Disconnect; override;
property DefaultInterface: CommandBarButton read GetDefaultInterface;
published
property OnClick : TCommandBarButtonClick read FOnClick write SetOnClick;
end;
ʵʩ²¿·Ö
{ TCommandBarButton }
procedure TCommandBarButton.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as CommandBarButton;
end;
end;
procedure TCommandBarButton.ConnectTo(svrIntf: CommandBarButton);
begin
Disconnect;
FIntf := svrIntf;
ConnectEvents(FIntf);
end;
constructor TCommandBarButton.Create(AOwner: TComponent);
begin
inherited;
end;
destructor TCommandBarButton.Destroy;
begin
inherited;
end;
procedure TCommandBarButton.Disconnect;
begin
if Fintf <> nil then
begin
DisconnectEvents(FIntf);
FIntf := nil;
end;
end;
function TCommandBarButton.GetDefaultInterface: Com
Ïà¹ØÎĵµ£º
ÒýÓÃ×Ô£ºhttp://develop.csai.cn/delphi/NO000001.htm
×Ô¶¯Íê³É¼ò½é
¡¡¡¡´ó¼ÒÒ»¶¨¶¼·Ç³£ÊìϤIEä¯ÀÀÆ÷µÄµØÖ·ÊäÈë±à¼¿ò£¬ËüÌṩÁË×Ô¶¯Íê³ÉµÄ¹¦ÄÜ¡£×Ô¶¯Íê³É£¨Auto Complete£©¹¦Äܼò»¯Á˱༿òµÄÊäÈ빦ÄÜ£¬Ëü¿ÉÒÔ¸ù¾ÝÒѾÊäÈëµÄ²¿·Ö×Ö·û´®½øÐÐÔ¤²âºÍÆ¥Å䡣ͼ2.7µÄÀý×Ó£¬ÑÝʾÁË×Ô¶¯Íê³É¿ÉÒÔÒÀ¾ÝÊäÈëµÄ“pro”£¬¸ø³ ......
ÔÚDELPHIΪ±à³ÌÕßÌṩÁËÒ»¸öÁé»îµÄ»æÍ¼³¡Ëù,¼´±¾ÎÄËùÊöµÄ
CANVASÀà,ÔÚDELPHIÖÐµÄºÜ¶à¿Ø¼þ¶¼¾ßÓдËÊôÐÔ,ʹ±à³ÌÕß¿ÉÒÔ
ÔÚÕâЩµÄ¿Ø¼þµÄ±íÃæËæÐÄËùÓûµÄ»æÍ¼,Õâ¶ÔÍêÉÆÓû§½çÃæ»òÕßÖÆ
×÷һЩÆÁÄ»ÌØ¼¼¶¼ÓÐ×Å·Ç·²µÄ×÷ÓÃ,ÏÂÃæ¾ÙÀý˵Ã÷¼¸ÖÖÌØÊâÆÁÄ»
......
procedure TForm1.Button1Click(Sender: TObject);
Var
Num: Integer;
Begin
Try
Num:=StrToInt(Edit1.Text);
Edit2.Text:=IntToStr(Num*Num);
Except
On EConvertError Do ShowMessage(Edit1.Text+'ÎÞ·¨×ª³ÉÕûÊý!');
......
ÖÆ×÷Ô²½Ç¾ØÐεĴ°Ì壺
01.procedure TPortForm.FormCreate(Sender: Tobject);
02.var hr :thandle;
03.begin
04.hr:=createroundrectrgn(0,0,width,height,20,20);
05.setwindowrgn(handle,hr,true);
06.end;
Èç¹û²»Òª´°ÌåÍâ¿ò£¬ÔòʹÓãº
01.procedure TPortForm.FormCreate(Sender: Tobject);
02.var hr :thandl ......