Help!! 如何动态删除控件?

snowerhuayun 2003-09-22 03:52:55
我知道用control.add可以动态加入控件,那么如何将这些动态生成的控件删除呢?(通过程序)
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx05 2003-09-23
  • 打赏
  • 举报
回复
unload 就可以了吧
Fengq 2003-09-23
  • 打赏
  • 举报
回复
controls.remove
gzqg 2003-09-23
  • 打赏
  • 举报
回复
up
watt 2003-09-22
  • 打赏
  • 举报
回复
Unload 不行吗?
northwolves 2003-09-22
  • 打赏
  • 举报
回复
Private WithEvents NewButton As CommandButton

Private Sub Command1_Click() '增加控件
If NewButton Is Nothing Then

Set NewButton = Controls.Add("VB.CommandButton", "cmdNew", Me) '增加新的按钮cmdNew

NewButton.Move Command1.Left + Command1.Width + 240, Command1.Top '确定新增按钮cmdNew的位置
NewButton.Caption = "新增的按钮"
NewButton.Visible = True
End If
End Sub


Private Sub Command2_Click() '删除控件
If NewButton Is Nothing Then
Else
Controls.Remove NewButton
Set NewButton = Nothing
End If
End Sub

Private Sub NewButton_Click() '新增控件的单击事件
MsgBox "您选中的是动态增加的按钮!"
End Sub
rainstormmaster 2003-09-22
  • 打赏
  • 举报
回复
Dim mytext As TextBox
Private Sub Command1_Click()
Set mytext = Controls.Add("VB.TextBox", "mytext", Me)
mytext.Left = 100
mytext.Top = 100
mytext.Visible = True
End Sub

Private Sub Command2_Click()
Controls.Remove mytext
End Sub
这是一个免费程序(目前还是测试版),作者不但提供控件, 而且还无偿提供控件的所有源代码,您可以在个人或者商业程序中免费使用DockPresident 地址: http://www.pigtwo.com/CtrlData/WebSite/luxiaoban.htm 如果您下载并且使用了DockPresident,请留下您的感受和意见,也算是对作者所做工作的肯定。 下面是她的readme文件中的内容: 作为Delphi的忠实用户,我想大家对Delphi中的停靠窗体应该比较熟悉吧,是不是也希望自己编的程序也具有这样的功能? 使她看起来更漂亮,更专业,更方便。本人做的一套停靠控件DockPresident正好能满足您的要求,DockPresident包含五个控件, 她们分别是TlbDockServer, TlbDockClient, TlbDelphiDockStyle, TlbVCDockStyle, TlbVIDDockStyle。 只要在主窗口上放上TDockServer控件,在一般窗口上放上TlbDockClient控件,这两个窗体就有了停靠功能。不用编写一行代码, 效果和Delphi的IDE一样,并且比她功能更强。并且两个都放了TlbDockClient控件的窗体还可以相互停靠, 分别停靠成平铺型和分页型的窗体。用户还可以改变停靠的风格, TlbDockServer和TlbDockClient都有一个属性叫做DockStyle, 只要把TlbDelphiDockStyle, TlbVCDockStyle或者TlbVIDDockStyle控件赋值给DockStyle属性, 用户您就拥有了Delphi, Visual C++或者Visual InterDev的停靠风格。 这套控件还有很多属性供用户设置,来改变她们的停靠特性。 在当前文件夹中又有一些子文件夹,分别是: Source: 控件的源代码. SupportClass: 一个第三方控件wmEdit的DCU文件,用于Demo程序中. Help: 帮助文件,请读者务必仔细阅读,里面有控件的详细说明. Document: 文档资料,如果读者想对DockPresident有更深入的了解, 阅读里面的文章. Demo: 例子程序,用来演示DockPresident控件的使用方法和效果,里面有两个程序AdviceDemo和VCDemo. AdviceDemo程序演示了所有的DockPresident控件的用法, VCDemo主要用来演示TlbVCDockStyle的用法.由于wmEdit的原因,在VCDemo程序中有两个工程文件, 分别是VCDemoPro_D5和VCDemoPro_D6,如果用户使用的是Delphi5.0,请使用VCDemoPro_D5工程, 反之就使用VCDemoPro_D6. Bin 用来存储Source文件夹中对应文件的DCU,编译后会产生,用户可以把它删除掉. 控件安装: 如果用户使用的是Delphi5.0,请打开DockControl_D5.dpk文件安装,如果用户使用的是Delphi6.0, 请打开DockControl_D6.dpk文件安装.控件安装完成后,用户还需要配置一下Delphi, 好让Delphi能找到源文件的路经, 设置方法: 点击Tools菜单的Environment Options,弹出Environment Options对话框, 点击Library页,然后点击Library path右边的按钮, 在弹出的Directories对话框中添加上控件源文件所在的文件夹,比如:D:DockFormControlSource. 如果用户没有配置Delphi,Demo文件夹中的程序也是可以使用的,因为作者已经帮用户设置好了, 但是如果用户要自己做一个全新的程序,请按照前面的方法配置您的Delphi.
Re: 《Linux 系统常用内置命令》  ---------------------------------------内容提要:     01. Linux内置命令概述;两栖命令 echo pwd kill 等等    02. 判断内置命令的方式;help -d [command] 能够正常回显    03. 内置命令在 shell 脚本中的基础应用介绍    04. 内置命令 alias 和 unalias 自定义别名和删除别名;临时生效与永久生效    05. 后台前台 出将入相 腾腾转 任务相关命令 bg fg jobs    06. SHELL 循环的处理方式 break continue exit    07. 常见 builtin 内置命令 eval exit export history    08. 内置命令 read 交互式赋值变量;type 判断命令类型    09. 内置命令 ulimit 修改系统资源使用限制;unset 清空变量  本人在教学和实战过程中发现,即便是有一定运维经验的人,可能已经能够搭建一定复杂度的Linux架构,但是在来来回回的具体操作中,还是体现出CLI(命令界面)功底不够扎实,甚至操作的非常‘拙’、处处露‘怯’。 对一个士兵来说,枪就是他的武器,对于一个程序员来说,各种library(工具库)就是他的武器;而对于Linux运维人员来说,无疑命令行工具CLI(命令界面)就是他们的武器;高手和小白之间的差距往往就体现在对于这些“武器”的掌握和熟练程度上。有时候一个参数就能够解决的事情,小白们可能要写一个复杂的Shell脚本才能搞定,这就是对CLI(命令界面)没有理解参悟透彻导致。 研磨每一个命令就是擦拭手中的作战武器,平时不保养不理解,等到作战的时候,一定不能够将手中的武器发挥到最好,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,结合当下流行或最新的Linux(v6/7/8 版本)同时演示,将命令行结合到解决企业实战问题中来,体现出教学注重实战的务实精神,希望从事或未来从事运维的同学,能够认真仔细的学完Linux核心命令的整套课程。 本课程系列将逐步推出,看看我教学的进度和您学习的步伐,孰占鳌头! 注:关于教学环境搭建,可以参考本人其它课程系列,本教学中就不再赘述!  《参透 VMware 桌面级虚拟化》 《在虚拟机中安装模版机(包括应用软件等)》 《SecureCRT 连接 GNS3/Linux 的安全精密工具》
SkinEngine 3.4.7 安装版SkinEngine控件是一组用于优化界面设计可视化控件,它重写了大部分可视化组件的源代码,使其外观更为美观漂亮,美化了程序界面的设计,使得程序员可以把更多的精力放在系统软件功能的设计上.首先从网上下载SkinEngine控件的安装包,我下载的是3.4.7版本,下载以后发现这个控件的安装竟然是windows的软件安装方式(而不是delphi安装第三方控件的安装包方式),安装后发现系统的程序菜单多了一项SkinEngine,里面只有一项内容,就是它的Help文件.什么也不管兴冲冲的打开delphi 7,什么也没有发生?所以打开SkinEngine程序的那个Help文件一看,原来要使用这个控件组还需要进一步的安装.安装顺序如下:打开delphi 6,然后文件--->open,找到SkinEngine的安装目录(默认是ksdev),进一步到\sources\packages目录下面,首先找到se_dsgn_d6.dpk 文件,先编译后安装;然后再找到se_db_dsgn_d6.dpk文件,同样处理,此时delphi的控件组中多出来两组:SkinEngine和SkinEngine DB.前者用于delphi程序普通界面的设计,后者用于数据库及其数据表相关内容的界面的设计,每一个组件的使用基本上都有一个delphi组件与之相对应,因此使用起来很方便.然后将“F:\DelphiProjects\VCL\SkinEngine 3.4.7 汉化版”放入Library path中。拖一个button到页面上,编译,通不过,提示找不到相关的DCU文件,没办法,重新回到SkinEngine的安装目录中,把sources目录中的所有文件拷贝到delphi6/lib目录下面,再次编译通过了.具体为什么会这样我也不是很清楚.希望能有高手指点一下.现在就可以安全的享用SkinEngine这道美餐了,合理的搭配好各个部件的使用,可以很轻松的编出来漂亮得不是一般的程序界面.卸载过程:菜单project->options->packages->在design packages下选择要删除的-〉remove按钮
// Chat.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "Chat.h" #include "ChatDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CChatApp BEGIN_MESSAGE_MAP(CChatApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CChatApp 构造 CChatApp::CChatApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CChatApp 对象 CChatApp theApp; // CChatApp 初始化 BOOL CChatApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); if(!AfxSocketInit()) { AfxMessageBox(_T("加载套接字库失败!")); return FALSE; } AfxEnableControlContainer(); // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CChatDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧