IDE Expert的一个DEMO
问题:将控件加入form时,如何改变在该Form对应的pas里加入任何内容? ( 积分:200, 回复:7, 阅读:73 )
分类:控件 - 开发 ( 版主:cAkk, amo )
来自:laotan, 时间:2003-7-16 12:19:00, ID:2032998 [显示:小字体 | 大字体]
我在编一个控件时,想让控件使用者在设计状态将控件加入一个Form(如Form1)时,控件可以自动在Form对应的Pas文件(如unit1.pas)里加入代码?如注释 函数定义等...
另外:如何在我的应用程序里调用做好的expert的Dll?(不是在Delphi菜单里启动"专家"。)
最好不要太多的原理性的东西,简洁的代码即可。谢谢!
来自:魔鬼大师, 时间:2003-7-16 12:52:00, ID:2033106
use yourunit
来自:leway, 时间:2003-7-16 14:53:00, ID:2033571
將你的控件Install到Delphi的IDE的元件盤上就可以了
来自:laotan, 时间:2003-7-16 15:14:00, ID:2033685
我不是让Delphi自动写于我的控件相关的信息。
意思是:当控件放置在form上后,自动写上
//该程序使用了xxxx控件,该控件有yyyy开发等内容。
即:我可以随便更改pas文件内容。当然不是在IDE里用键盘输入。
来自:realLearning, 时间:2003-7-16 16:42:00, ID:2034123
uses ToolsApi
constructor TQRRoundRect.Create(AOwner: TComponent);
var
EditPas : IOTAEditorServices;
begin
inherited Create(AOwner);
Width := 120;
Height := 80;
if csDesigning in ComponentState then
begin
EditPas := BorlandIDEServices as IOTAEditorServices ;
Editpas.TopBuffer.EditPosition.InsertText('//该程序使用了xxxx控件,该控件有yyyy开发'#13);
end;
end;
来自:laotan, 时间:2003-7-16 18:46:00, ID:2034582
成功了。谢谢realLearning的回答。
不过,现在是鼠标在哪就加到哪里。能否实现在指定位置添加一些语句?
如在uses 子句里加入:unit2
在interface里加入类或函数定义
在implementation里加入函数段.....
来自:程序小鱼, 时间:2003-7-16 23:30:00, ID:2035145
高手是有的
来自:realLearning, 时间:2003-7-17 11:00:00, ID:2036120
老兄,这方面borland的文档资料很少,我也是摸索toolsapi的源码
试出来的,你可以看一下toolsapi的源码。
下面的一段代码是加入uses,没有作必要的判断(比如没有判断uses的头文件有几行),
给你参考一下。
EditPas := BorlandIDEServices as IOTAEditorServices ;
EditPas.TopBuffer.EditPosition.Move(1,1);
EditPas.TopBuffer.EditPosition.Search('uses',False,False,True,sdForward,ErrorCode);
Row := EditPas.TopBuffer.EditPosition.Row+1 ;
EditPas.TopBuffer.EditPosition.Move(Row,1);
EditPas.TopBuffer.EditPosition.MoveEOL;
Col := EditPas.TopBuffer.EditPosition.Column ;
EditPas.TopBuffer.EditPosition.Move(Row,Col-1);
Editpas.TopBuffer.EditPosition.InsertText(',unit2');