关于class (TIExpert)(100分)

  • 主题发起人 主题发起人 delphifaq
  • 开始时间 开始时间
D

delphifaq

Unregistered / Unconfirmed
GUEST, unregistred user!
关于class (TIExpert)
下面编写的加载型专家 为何定义的菜单加不到Delphi 3的IDE菜单上
所用变量等都已声名
Constructor TMyAddInExpert.Create;
begin
Inherited Create;
if Assigned(ToolServices) then
Try
MainMenuIntf:=ToolServices.GetMainMenu;
if Assigned(MainMenuIntf) then
Try
MenuItemIntf:=MainMenuIntf.FindMenuItem('Tools Menu');
if Assigned(MenuItemIntf) then
ry

CopyProject:=MenuItemIntf.InsertItem(0,'Copy Project...',
'CopyProject','ToolsCopyProject',integer(ShortCut(Ord('D'),[ssCtrl])),0,0,
[mfEnabled,mfVisible],CopyProjectClick);
MoveProject:=MenuItemIntf.InsertItem(0,'Move Project...',
'MoveProject','ToolsMoveProject',integer(ShortCut(Ord('M'),[ssCtrl])),0,0,
[mfEnabled,mfVisible],MoveProjectClick);
Finally
MenuItemIntf.Release;
End;
Finally
MainMenuIntf.Release;
End;
Except
// HandleException;//此句错在哪里?
end;
end;

另一问题
如何实现Delphi 3启动时 默认显示自己作的窗体、工程,而不是Form1,Project1

 
1.except后面应该有具体的除了异常的语句, 至少加一个分号";"
2.在Tools|Environment Options...里面的Preferences标签下设置Auto Save
Options(delphi 4, 3.0下也差不多).
 
2.autosave->desktop 结果生成了一个.dsk文件,自己改dsk也可以哟! :)
 
谢谢大家 请说详细一些号码? 我上面的程序生成的菜单为何显示不到DELPHI菜单上?
有错误吗?( Except // HandleException;//此句错在哪里?)此句不算
CopyProject:=MenuItemIntf.InsertItem(0,'Copy Project...',
'CopyProject','ToolsCopyProject',integer(ShortCut(Ord('D'),[ssCtrl])),0,0,
[mfEnabled,mfVisible],CopyProjectClick);
MoveProject:=MenuItemIntf.InsertItem(0,'Move Project...',
'MoveProject','ToolsMoveProject',integer(ShortCut(Ord('M'),[ssCtrl])),0,0,
[mfEnabled,mfVisible],MoveProjectClick);
有问题吗?另一问题
如何实现Delphi 3启动时 默认显示自己作的窗体、工程,而不是Form1,Project1
请详细一些 谢谢
请问谁有delphi 3 的quick report源码 请E-mail给我好吗?
地址:zwsfriend@21cn.com 谢谢 谢谢 谢谢
 
问题好象出在
Inherited Create;
一句上,因为Inherited语句是继承了父辈的方法,所以你自定的方法则不会被
接受。解决办法:1、去掉Inherited一句;2、重载你的方法。
 
对于问题1:应与Inherited Create;无关系。但由于没有做过expert方面的东东,
所以还希望听听其它高手的意见。
对于问题2:D3中的环境设置应该也有desktop autosave的,不过菜单结构都忘记了
你自己找找看吧。
 
desktop autosave 保存的结果每次启动delphi时都是
上次退出时的 我说的是每次启动时都显示我做好的工程
模板
另外由于登陆非常慢,想登陆到提问但是上不去 所以
在这里再提一问题 并另加50分
函数diskfree,disksize 检查磁盘空间返回的
最大值为2047M 若磁盘空间大于2047 怎么才
能返回真的磁盘空间值呢?
谢谢!
 
D4的diskfree与disksize 返回一int64型值,能够表示大于2G的硬盘容量。
desktop autosave为当前工程保存一同名的dsk文件,保存了所有窗体信息(包含了
属性窗体的信息),应该能满足你的要求的。
 
请继续讨论或结束此问题!
 
首先确认你的程序已经初试化,在Create中加入ShowMessage是试!!!
认你的程序是否有类试以下的程序端!!!

function InitExpert(ToolServices: TIToolServices;
RegisterProc: TExpertRegisterProc;
var Terminate: TExpertTerminateProc): Boolean; export; stdcall;
begin
if ExptIntf.ToolServices = nil then
begin
ExptIntf.ToolServices := ToolServices;
if ToolServices <> nil then
Application.Handle := ToolServices.GetParentHandle;
end;
Result := RegisterProc(TMyExpert.Create);
end;

exports
InitExpert name ExpertEntryPoint resident;
 
你不会自己结束问题?那么多问题要别人帮你结束??
 

Similar threads

I
回复
0
查看
693
import
I
I
回复
0
查看
672
import
I
I
回复
0
查看
767
import
I
I
回复
0
查看
2K
import
I
后退
顶部