5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何得到整个工程/工程组的全部源代码?--在addin中

楼主shawls(VB Fan)(QQ:9181729)2003-01-13 23:55:58 在 VB / 基础类 提问

如何得到整个工程/工程组的全部源代码?--在addin中  
   
  现在我在做一个vb   ide的add-ins  
   
  遇到了一个问题,如何得到目前这个工程/工程组的全部源代码(每个文件里面的,不过,不是通过读取文件得到,而是取得编辑器中的文件,这些东西和硬盘上的可能不同,是修改中的文件,通过得到工程/工程组的原地址文件来获取代码我会做,请不要重复了。)  
   
  或者有什么相关的文档资料,我手头什么东西都没有  
   
  谢谢了,请回帖或者mail:shawfile@163.net      
  qq:9181729  
   
  问题点数:40、回复次数:7Top

1 楼heng_s(渣渣)回复于 2003-01-14 11:57:23 得分 0

用记事本打开源文件就可以看到.Top

2 楼shawls(VB Fan)(QQ:9181729)回复于 2003-01-14 12:07:18 得分 0

晕倒~~这个谁不会啊,  
   
  我是说,目前我打开的这个工程,我点击我写的addins所添加的按钮/菜单可以将当前打开的工程/工程组里面的所有form/class/usercontrol/model/other里面的全部源代码得到Top

3 楼lxcc()回复于 2003-01-14 13:07:45 得分 0

for   each   in   forms  
          'open   source   code  
  next  
  其他就不知道了Top

4 楼shawls(VB Fan)(QQ:9181729)回复于 2003-01-14 15:36:34 得分 0

算了,我自己找到了   答案,贴上来,放2天,就接帖子  
   
   
          For   I   =   1   To   VBInstance.VBProjects.Count  
                   
                   
                  strName   =   strName   &   VBInstance.VBProjects.Item(I).Name  
                  strPath   =   strPath   &   VBInstance.VBProjects.Item(I).FileName  
                   
                  strTmp   =   strTmp   &   VBInstance.VBProjects.Item(I).Name   &   vbCrLf   &   VBInstance.VBProjects.Item(I).FileName   &   vbCrLf    
                   
                          For   x   =   1   To   VBInstance.VBProjects.Item(I).VBComponents.Count  
                                   
                                  DoEvents  
                                   
                                  strTmp   =   strTmp   &   VBFileSplit   &   vbCrLf   &   "窗体名:"   &   VBA.Space(7)   &   VBInstance.VBProjects.Item(I).VBComponents.Item(x).Name   &   vbCrLf   &   "文件列表:"   &   VBA.Space(5)   &   vbCrLf  
                                   
                                   
                                  For   y   =   1   To   VBInstance.VBProjects.Item(I).VBComponents.Item(x).FileCount  
                                           
                                          DoEvents  
                                           
                                          strTmp   =   strTmp   &   VBInstance.VBProjects.Item(I).VBComponents.Item(x).FileNames(y)    
                                           
                                  Next   y  
                                   
                                   
                                  strTmp   =   strTmp   &   VBCodeSplit   &   "代码内容:"   &   VBA.Space(5)   &   vbCrLf   &   VBInstance.VBProjects.Item(I).VBComponents.Item(x).CodeModule.Lines(1,   VBInstance.VBProjects.Item(I).VBComponents.Item(x).CodeModule.CountOfLines)    
                                   
                   
                          Next   x  
                   
                   
          Next   ITop

5 楼shawls(VB Fan)(QQ:9181729)回复于 2003-01-14 16:14:01 得分 0

还有一个问题:  
   
  代码:  
          I   =   VBInstance.CommandBars.Item(2).Controls.Count  
          Set   CmdCommandBar   =   VBInstance.CommandBars.Item(2).Controls.Add(MsoControlType.msoControlButton,   ,   I   -   1,   I)  
          Set   ButtonHandler   =   VBInstance.Events.CommandBarEvents(CmdCommandBar)  
          CmdCommandBar.Caption   =   In_Caption  
   
  这里添加了一个按钮到toolbar上面,如何设置这个按钮的图标?现在这个按钮是没有图标的Top

6 楼shawls(VB Fan)(QQ:9181729)回复于 2003-01-14 19:31:08 得分 0

用外接程序操作   IDE  
   
   
  扩展性对象模型中的几个对象允许操作和扩展   Visual   Basic   IDE。该主题里的代码举了几个例子。  
   
  命令栏集合和命令栏对象  
  通过它们可以操作命令栏,命令栏是工具栏和菜单栏的组合。几乎可以对   CommandBar   对象做任何事,包括创建新的对象、删除已有的对象和改变它们的尺寸、位置和图标。  
   
  这是一个如何操作命令行的示例:  
   
  Dim   mcbMenuCommandBar   As   Office.CommandBarControl  
   
  '确定标准的工具栏是可见的。  
  gVBInstance.CommandBars("Standard").Visible   =   True  
  '当作按钮添加到标准工具栏中。  
  '在工具箱的右边添加该按钮。  
  Set   mcbMenuCommandBar   =   _  
  gVBInstance.CommandBars("Standard").Controls.Add   _  
  (1,   ,   ,   gVBInstance.CommandBars("Standard")   _  
  .Controls.Count)  
  '设置按钮的标题。  
  mcbMenuCommandBar.Caption   =   "My   Test"  
  '把图标复制到剪贴板上。  
  Clipboard.SetData   LoadPicture("c:\windows\circles.bmp")  
  '把图标粘贴在按钮上。  
  mcbMenuCommandBar.PasteFace  
   
  '处理   CommandBarEvents   对象。  
  Set   Me.MenuHandler   =   _  
  gVBInstance.Events.CommandBarEvents   _  
  (mcbMenucommandBar)  
   
  详细信息       关于使用命令条的附加信息,请参阅第四章“创建激活外接程序的工具栏按钮”。  
   
  Windows   集合和   Window   对象  
  该集合和该对象允许创建和删除窗口,移动在   IDE   中打开的窗口,和改变它的尺寸。所有的窗口都包含在   Windows   集合中。这意味着这些窗口不曾真正被关闭,只是通过   Visible   属性改变了它们的可视性。  
   
  注意,虽能使用   Window   对象来操作窗口框架本身,但不能用它来操作窗口所包含的对象(例如控件)。若要操作窗口包含的对象,必须引用适当的对象。  
   
  随后的代码片断演示如何引用   Window   对象和   Windows   集合:  
   
  '触发窗口的可视性。假设列表中的窗口顺序和集合中的窗口顺序相匹配。  
  '一个更好的方法是根据   caption   和   type   来查询窗口。  
  Private   Sub   cmdToggle_Click()  
        Dim   w   As   Window  
        Dim   sw   As   String  
   
        sw   =   Combo1.Text  
        If   sw   <>   ""   Then  
              If   sw   =   "MainWindow"   Then  
                    Set   w   =   vbi.MainWindow  
              Else  
                    Set   w   =   vbi.Windows(Combo1.ListIndex)  
              End   If  
              w.Visible   =   Not   w.Visible  
              RefreshWindows  
        End   If  
  End   Sub  
   
  LinkedWindows   集合  
  该集合包含了给定   LinkedWindowFrame   中的所有窗格。“链接的窗口”定义成两个或更多窗口,这些窗口连接在单一的联合窗口中,被称之为“LinkedWindowFrame”的框架所包围。LinkedWindowFrame   中的每一个子窗口被称为“窗格”。LinkedWindowFrame   存在于所有能链接或连接在一起的窗口四周,(除了代码窗口、设计器窗口、对象浏览器窗口以及搜索和替换窗口外)。  
   
  如果从   LinkedWindowFrame   中删除了所有的区,该   LinkedWindowFrame   也被删除。(唯一的例外是主窗口)  
   
  只有类型为   LinkedWindowFrame   的窗口有   ContainedWindows   集合。对于其它窗口类型,该集合是   Nothing。  
   
  下面的代码片断演示了如何引用   LinkedWindows   集合:  
   
  '如果窗口被链接或连接,则解除链接或连接。  
  Private   Sub   cmdUnlinkWindow_Click()  
        Dim   w   As   Window  
        Dim   sw   As   String  
   
        sw   =   Combo1.Text  
        If   sw   =   ""   Then   Exit   Sub  
        If   sw   =   "MainWindow"   Then  
              Set   w   =   vbi.Windows.MainWindow  
        Else  
              Set   w   =   vbi.Windows(Combo1.ListIndex)  
        End   If  
        If   Not   w.LinkedWindowFrame   Is   Nothing   Then  
              w.LinkedWindowFrame.LinkedWindows.Remove   w  
        End   If  
        RefreshWindows  
  End   Sub  
   
  Code   Pane   对象  
  这是一个显示对象代码的对象提供的窗口。不能创建或破坏   IDE   中的   CodePane   对象,但可以操纵它们的高度、宽度和位置。也可以插入或删除代码行(使用   InsertLines   和   DeleteLine   方法),选择某些行并使其突出显示或不突出显示。可以使用   GetSelectedText   方法把选好的代码复制到   Windows   的剪贴板上。  
   
  虽然   CodePane   对象允许可视地检查或选择存在的代码,但是不允许更改它。为此,必须使用   CodeModule   对象,如本章“用外接程序操作代码”部分所描述的那样。  
   
  下面的代码片断演示了如何引用   CodePane   集合:  
   
  '用滚动条滚动代码窗格。  
  Private   Sub   sclCodePane_Change()  
        Dim   p   As   VBProject  
        Dim   c   As   VBComponent  
        Dim   cp   As   CodePane  
        Dim   sc   As   String  
        Dim   sp   As   String  
   
        sp   =   cmbProj.Text  
        sc   =   cmbComp.Text  
        If   sp   <>   ""   And   sc   <>   ""   Then  
              Set   c   =   _  
                    vbi.VBProjects.Item(sp).   _  
                    VBComponents.Item(sc)  
              Set   cp   =   c.CodeModule.CodePane  
              cp.TopLine   =   sclCodePane.Value   +   1  
        End   If  
  End   Sub  
   
  Top

7 楼dapha(www.5ivb.net)回复于 2003-01-14 22:10:01 得分 40

goodTop

相关问题

  • 求调用WinWebMail组件的源代码。
  • 初学者问题--怎样去读工程源代码
  • 如何将VC工程再次连接到VSS源代码服务器?
  • 源代码!源代码!
  • 谁有ASP上载组件的源代码下载
  • 哪里有用VB编写的ASP组件,要有源代码?
  • 高分求排列组合的VB.NET源代码
  • 一组支持皮肤更换的窗口界面源代码!!!
  • 重金求电信SMGP协议C#组包源代码一个!!!!!!!!!!!!!!!!!!
  • 求用VB开发的MD5组件的源代码

关键词

  • 代码
  • 源代码
  • 演示
  • 文件
  • linkedwindowframe
  • 对象
  • 集合
  • vbprojects
  • 工程
  • mcbmenucommandbar

得分解答快速导航

  • 帖主:shawls
  • dapha

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问